rorywalsh/cabbage

CLIConverter does not link on Linux

Opened this issue · 4 comments

I am trying to build cabbage on Fedora 36 using gcc 12.2.1.
CLIConverter fails to link with the following error:

[100%] Linking CXX executable CLIConverter_artefacts/Debug/CLIConverter
/usr/bin/cmake -E cmake_link_script CMakeFiles/CLIConverter.dir/link.txt --verbose=1
/usr/lib64/ccache/g++ -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -g -Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1 -Wl,-dT,/home/collette/rpmbuild/BUILD/cabbage/.package_note-cabbage-2.9.0-1.fc36.x86_64.ld CMakeFiles/CLIConverter.dir/Source/Converter/Main.cpp.o CMakeFiles/CLIConverter.dir/Source/Utilities/CabbageExportPlugin.cpp.o CMakeFiles/CLIConverter.dir/Source/Widgets/CabbageWidgetBase.cpp.o CMakeFiles/CLIConverter.dir/Source/Widgets/CabbageWidgetData.cpp.o CMakeFiles/CLIConverter.dir/Source/Widgets/CabbageWidgetDataInitMethods.cpp.o CMakeFiles/CLIConverter.dir/Source/LookAndFeel/CabbageIDELookAndFeel.cpp.o CMakeFiles/CLIConverter.dir/Source/Settings/CabbageSettings.cpp.o CMakeFiles/CLIConverter.dir/Source/BinaryData/CabbageBinaryData.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_core/juce_core.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_events/juce_events.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_graphics/juce_graphics.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_data_structures/juce_data_structures.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_gui_extra/juce_gui_extra.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_cryptography/juce_cryptography.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_audio_basics/juce_audio_basics.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_audio_devices/juce_audio_devices.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_audio_formats/juce_audio_formats.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_audio_processors/juce_audio_processors.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_product_unlocking/juce_product_unlocking.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_audio_utils/juce_audio_utils.cpp.o CMakeFiles/CLIConverter.dir/JUCE/modules/juce_opengl/juce_opengl.cpp.o -o CLIConverter_artefacts/Debug/CLIConverter  /usr/lib64/libcsound64.so /usr/lib64/libasound.so /usr/lib64/libfreetype.so -lrt -ldl -lpthread -lGL 
/usr/bin/ld: /tmp/ccRwUTJJ.ltrans21.ltrans.o: in function `CabbagePluginEditor* juce::Component::findParentComponentOfClass<CabbagePluginEditor>() const':
/home/collette/rpmbuild/BUILD/cabbage/JUCE/modules/juce_gui_basics/components/juce_Component.h:816: undefined reference to `typeinfo for CabbagePluginEditor'
collect2: error: ld returned 1 exit status
gmake[2]: *** [CMakeFiles/CLIConverter.dir/build.make:443: CLIConverter_artefacts/Debug/CLIConverter] Error 1

Tested only with release 2.9.0

Thanks @ycollet I'll take a look when I get a chance 👍

And, by the way, cabbage is now available on Fedora 36 / 37 :)
https://copr.fedorainfracloud.org/coprs/ycollet/audinux/

And, by the way, cabbage is now available on Fedora 36 / 37 :) https://copr.fedorainfracloud.org/coprs/ycollet/audinux/

audinux just seems to remove CLIConverter:
https://github.com/audinux/fedora-spec/blob/master/cabbage/cabbage-source.sh#L12

edit: my fault, it only drops the macOs binary included