ffAudio / Frequalizer

Equalizer using JUCE new dsp module
https://foleysfinest.com/plugins/frequalizer/
BSD 3-Clause "New" or "Revised" License
315 stars 45 forks source link

Build for Linux: VST3 and JUCE_JACK #10

Open dextersLabRat opened 2 years ago

dextersLabRat commented 2 years ago

Hi. I'm building Frequalizer on Linux. I'm used to using the Projucer to configure the build--not so savvy with CMake. I got a coworker to help me through some build issues. I can post those fixes below.

My main goal is to build Frequalizer for a JACK target to use as a JACK plugin. I know how to do this with the Projucer but not with CMake.

How I can I build this for JACK (JUCE_JACK is probably the JUCE definition)?


Fixes for building on Linux in CMakeLists.txt: image (3)

SpotlightKid commented 1 year ago

I can't even compile the VST3 on Linux (Manjaro). I get a linking error I don't understand.

I tried compiling with:

mkdir build; cd build
cmake -DCMAKE_BUILD_TYPE=Release -Wno-dev ..
cmake --build .

I get this error at the linking stage:

[...]
/usr/bin/ld: Resources/libfrequalizer_binary.a(BinaryData1.cpp.o): warning: relocation against `_ZN11FFAudioData17namedResourceListE' in read-only section `.text'
/usr/bin/ld: Resources/libfrequalizer_binary.a(BinaryData1.cpp.o): relocation R_X86_64_PC32 against symbol `_ZN11FFAudioData10FBlogo_pngE' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: bad value
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/frequalizer_VST3.dir/build.make:245: frequalizer_artefacts/Release/VST3/Frequalizer.vst3/Contents/x86_64-linux/Frequalizer.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:240: CMakeFiles/frequalizer_VST3.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Anyone have an idea what is going wrong?

dextersLabRat commented 1 year ago

Sorry that this reply is so late!! Just saw this. I'm no expert, but I have seen this kind of thing before, and I believe that the issue is dynamic library linking vs. static. See if a Google search can get you more info based on that.

Just as a starter: Google Search