Juce in raspberry pi 4b [solved]

Hey guys, I installed juce into raspbian in my 4b, i modified an exisitng project and tried to build it with the make file autogenerated. I installed juce with this. When trying to build the project, at the end when it starts linking to Standalone it has this error:

Linking TinyTable - Shared Code
Linking TinyTable - Standalone Plugin
/usr/bin/ld: build/TinyTable.a(include_juce_audio_basics_8a4e984a.o): in function juce::BufferingAudioSource::getNextAudioBlock(juce::AudioSourceChannelInfo const&)': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: build/TinyTable.a(include_juce_audio_basics_8a4e984a.o): in function juce::BufferingAudioSource::waitForNextAudioBlockReady(juce::AudioSourceChannelInfo const&, unsigned int)': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8' /usr/bin/ld: build/TinyTable.a(include_juce_audio_basics_8a4e984a.o):/usr/include/c++/8/bits/atomic_base.h:396: more undefined references to __atomic_load_8’ follow
/usr/bin/ld: build/TinyTable.a(include_juce_audio_basics_8a4e984a.o): in function std::__atomic_base<long long>::operator=(long long)': /usr/include/c++/8/bits/atomic_base.h:374: undefined reference to __atomic_store_8’
/usr/bin/ld: build/TinyTable.a(include_juce_audio_basics_8a4e984a.o): in function std::__atomic_base<long long>::operator long long() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: build/TinyTable.a(include_juce_audio_basics_8a4e984a.o): in function std::__atomic_base<long long>::operator+=(long long)': /usr/include/c++/8/bits/atomic_base.h:312: undefined reference to __atomic_fetch_add_8’
/usr/bin/ld: build/TinyTable.a(include_juce_audio_formats_15f82001.o): in function juce::BufferingAudioReader::readNextBufferChunk()': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: build/TinyTable.a(include_juce_audio_utils_9f9fb2d6.o): in function juce::AudioThumbnail::setLevels(juce::AudioThumbnail::MinMaxValue const* const*, int, int, int)': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: build/TinyTable.a(include_juce_audio_utils_9f9fb2d6.o): in function juce::AudioThumbnail::getProportionComplete() const': /usr/include/c++/8/bits/atomic_base.h:396: undefined reference to __atomic_load_8’
/usr/bin/ld: build/TinyTable.a(include_juce_core_f26d17db.o): in function std::__atomic_base<long long>::operator^=(long long)': /usr/include/c++/8/bits/atomic_base.h:344: undefined reference to __atomic_fetch_xor_8’
collect2: error: ld returned 1 exit status
make: *** [Makefile:122: build/TinyTable] Error 1

your help will be much appreciated

dont know what i did lol now i got this

Linking TinyTable - Shared Code
Linking TinyTable - Standalone Plugin
/usr/bin/ld: /usr/lib/gcc/arm-linux-gnueabihf/8/…/…/…/arm-linux-gnueabihf/crt1.o: in function _start': (.text+0x34): undefined reference to main’
collect2: error: ld returned 1 exit status
make: *** [Makefile:119: build/TinyTable] Error 1

Hi, this script is not an official installer, and it seems to be outdated (Grapefruit JUCE was JUCE 4, which has been superseded by JUCE 6). Could you share the origin of this script?

To fix the first set of errors, you can try adding the atomic library to your link-line, i.e. make LDFLAGS=-latomic.

Unfortunately I’m not sure what might have caused the second issue. If the TinyTable project is under version control, it might be a good idea to revert it to a known-good state, and then to check whether building with LDFLAGS=-latomic allows the build to succeed.

2 Likes

I formatted the pi (just in case) installed al the dependencies and ran .sh (i got it from another juce forum, cant find it, but the github link has the latest juce so i dont think it is out dated, just the name Grapefruit on the script is kinda deceiving) then compiled with the make LDFLAGS=-latomic line and it was good to go! thnx, it wasnt linking propperly with latomic.

found it! Easy Juce installation on Ubuntu Linux 16.04