kronihias / ambix

cross-platform Ambisonic VST, LV2 plug-ins with variable order for use in Digital Audio Workstations like Reaper or Ardour or as Jack standalone applications
GNU General Public License v2.0
235 stars 34 forks source link

libJUCE linking error when compiling in Linux #3

Closed asbaklm closed 7 years ago

asbaklm commented 8 years ago

Hello Matthias

I'm trying to compile the VST version on Mint 17.3 64bit and coming across this error, do you perhaps have any suggestions?

Regards

[ 17%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_osc/juce_osc.cpp.o

Linking CXX static library libJUCE_STATIC.a

[ 17%] Built target JUCE_STATIC make: *\ [all] Error 2

esqilin commented 8 years ago

Finally someone with the same problem. I've already spent hours trying to figure this out. I cannot compile ambix on Xubuntu 15.04.

cmake: BUILD$ cmake .. -DBUILD_LV2=ON

make: BUILD$ VERBOSE=1 make -j 3

Error:

cd /home/foo/Downloads/ambix-master/BUILD/ambix_binaural/ambix_binaural_standalone && /usr/bin/c++   -DAMBI_ORDER=5 -DBINAURAL_DECODER=1 -DJUCE_ALSA=1 -DJUCE_JACK=1 -DJUCE_JACK_CLIENT_NAME=\"ambix_binaural_standalone_o5\" -DJUCE_LINUX=1 -DJUCE_STANDALONE_APPLICATION=1 -DJucePlugin_Build_LV2=1 -DJucePlugin_Build_VST=1 -DLINUX=1 -DNDEBUG=1 -DNUM_FILTERS=8 -DNUM_FILTERS_VMIC=8 -DNUM_OUTPUTS=48 -DVERSION=0.2.5 -DWITH_ADVANCED_CONTROL=1 -DWITH_OSC=1 -D_NDEBUG=1 -msse3 -I/home/foo/Downloads/ambix-master/common/LegendreU -I/home/foo/Downloads/ambix-master/common/SphFilter -I/home/foo/Downloads/ambix-master/common/SphericalHarmonic -I/home/foo/Downloads/ambix-master/common/Ressources -I/home/foo/Downloads/ambix-master/common -I/home/foo/Downloads/ambix-master/JUCE -I/home/foo/Downloads/ambix-master/vstsdk2.4 -I/usr/include/eigen3 -I/usr/local/include -I/usr/include/freetype2 -I/usr/include/x86_64-linux-gnu/freetype2 -I/home/foo/Downloads/ambix-master/ambix_binaural/ambix_binaural_standalone/JuceLibraryCode -I/home/foo/Downloads/ambix-master/ambix_binaural/JuceLibraryCode    -std=c++11 -o CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/common/MyMeterDsp/MyMeterDsp.cpp.o -c /home/foo/Downloads/ambix-master/common/MyMeterDsp/MyMeterDsp.cpp
/usr/bin/cmake -E cmake_progress_report /home/foo/Downloads/ambix-master/BUILD/CMakeFiles 
make[2]: *** No rule to make target 'JUCE/libJUCE_STATIC.a', needed by '_bin/standalone/ambix_binaural_standalone_o5'.  Stop.

When I run make a second time I get

cd /home/foo/Downloads/ambix-master/BUILD/ambix_decoder/ambix_decoder && /usr/bin/c++   -DAMBI_ORDER=5 -DBINAURAL_DECODER=0 -DJUCE_ALSA=1 -DJUCE_JACK=1 -DJUCE_LINUX=1 -DJUCE_STANDALONE_APPLICATION=1 -DJucePlugin_Build_LV2=1 -DJucePlugin_Build_VST=1 -DLINUX=1 -DNDEBUG=1 -DNUM_FILTERS=8 -DNUM_FILTERS_VMIC=8 -DNUM_OUTPUTS=48 -DVERSION=0.2.5 -DWITH_ADVANCED_CONTROL=1 -DWITH_OSC=1 -D_NDEBUG=1 -Dambix_decoder_o5_EXPORTS -msse3 -fPIC -I/home/foo/Downloads/ambix-master/common/LegendreU -I/home/foo/Downloads/ambix-master/common/SphFilter -I/home/foo/Downloads/ambix-master/common/SphericalHarmonic -I/home/foo/Downloads/ambix-master/common/Ressources -I/home/foo/Downloads/ambix-master/common -I/home/foo/Downloads/ambix-master/JUCE -I/home/foo/Downloads/ambix-master/vstsdk2.4 -I/usr/include/eigen3 -I/usr/local/include -I/usr/include/freetype2 -I/usr/include/x86_64-linux-gnu/freetype2 -I/home/foo/Downloads/ambix-master/ambix_decoder/ambix_decoder/JuceLibraryCode -I/home/foo/Downloads/ambix-master/ambix_binaural/JuceLibraryCode    -std=c++11 -o CMakeFiles/ambix_decoder_o5.dir/__/__/JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp.o -c /home/foo/Downloads/ambix-master/JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
/usr/bin/ld: ../../JUCE/libJUCE_STATIC.a(juce_core.cpp.o): undefined reference to symbol 'pthread_setname_np@@GLIBC_2.12'
/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/build.make:301: recipe for target '_bin/standalone/ambix_binaural_standalone_o5' failed

Just to check I ran "make clean", and then cmake without any flags and make without the -j flag which yielded pretty much the same as the above error the first time I ran it:

cd /home/foo/Downloads/ambix-master/BUILD/ambix_binaural/ambix_binaural_standalone && /usr/bin/cmake -E cmake_link_script CMakeFiles/ambix_binaural_standalone_o5.dir/link.txt --verbose=1
/usr/bin/c++    -msse3   CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/JUCE/standalone-filter/juce_StandaloneFilterApplication.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/AmbiSpeaker.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/ConvolverData.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/MtxConv.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/PluginEditor.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/PluginProcessor.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/common/MyMeter/MyMeter.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/common/MyMeterDsp/MyMeterDsp.cpp.o CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/JUCE/modules/juce_audio_devices/juce_audio_devices.cpp.o  -o ../../_bin/standalone/ambix_binaural_standalone_o5 -rdynamic -lfftw3f /usr/local/lib/libsoxr.so -lGLU -lGL -lglut -lXmu -lXi -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt ../../JUCE/libJUCE_STATIC.a -Wl,-rpath,/usr/local/lib 
/usr/bin/ld: ../../JUCE/libJUCE_STATIC.a(juce_core.cpp.o): undefined reference to symbol 'pthread_setname_np@@GLIBC_2.12'
/lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/build.make:301: recipe for target '_bin/standalone/ambix_binaural_standalone_o5' failed

Any help would be appreciated! I need this for a class at IEM and I don't want to install wine and Reaper.

Thank you, best, Mathias

kronihias commented 7 years ago

@esqilin @asbaklm please try again now. i realized ubuntu does care now about the order of libraries being linked. i changed this and it should build now. note that Ubuntu 16.10 comes with a broken libeigen, therefore get the latest version of eigen directly from http://eigen.tuxfamily.org