Linking error -incompatable target

I have downloaded OF 0.11.2 nightly and it installed compiled ok. However, I get linking errors on
the examples. Have tried polygonExample and it fails as shown below. I’m running under Raspianos (Debian 64 bit based) on a Latte Panda V1. I originally had linux Mate running on this board and OF examples did run. it looks like its an error on the Raspian version with lfmod and ofTesselator:

Linking bin/polygonExample for linux64

g++ -o bin/polygonExample obj/linux64/Release/src/main.o obj/linux64/Release/src/ofApp.o /home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a -Wl,-rpath=./libs:./bin/libs -Wl,–as-needed -Wl,–gc-sections -fuse-ld=gold -L/home/user/openFrameworks/libs/fmod/lib/linux64/ -lfmod /home/user/openFrameworks/libs/kiss/lib/linux64/libkiss.a /home/user/openFrameworks/libs/tess2/lib/linux64/libtess2.a -lz -lgstapp-1.0 -lgstvideo-1.0 -lgstbase-1.0 -lgstreamer-1.0 -ludev -lfontconfig -lfreetype -lsndfile -lopenal -lcurl -lglfw -lrtaudio -ljack -lpthread -lpulse-simple -lpulse -lasound -lGLEW -lGLU -lGL -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lmpg123 -lglut -lX11 -lXrandr -lXxf86vm -lXi -lXcursor -ldl -lpthread -lfreeimage -lboost_filesystem -lboost_system -lpugixml -luriparser -lXinerama

/usr/bin/ld.gold: warning: skipping incompatible /home/user/openFrameworks/libs/fmod/lib/linux64//libfmod.so while searching for fmod

/usr/bin/ld.gold: error: cannot find -lfmod

/usr/bin/ld.gold: error: /home/user/openFrameworks/libs/kiss/lib/linux64/libkiss.a(kiss_fftr.o): incompatible target

/usr/bin/ld.gold: error: /home/user/openFrameworks/libs/tess2/lib/linux64/libtess2.a(tess.o): incompatible target

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::ofTessellator(): error: undefined reference to ‘tessNewTess’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::~ofTessellator(): error: undefined reference to ‘tessDeleteTess’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::ofTessellator(ofTessellator const&): error: undefined reference to ‘tessNewTess’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::operator=(ofTessellator const&): error: undefined reference to ‘tessDeleteTess’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::operator=(ofTessellator const&): error: undefined reference to ‘tessNewTess’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::init(): error: undefined reference to ‘tessNewTess’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessTesselate’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessGetVertexCount’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessGetElementCount’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessGetVertices’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessGetElements’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::tessellateToMesh(ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > const&, ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessAddContour’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::tessellateToMesh(std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > > const&, ofPolyWindingMode, ofMesh_<glm::vec<3, float, (glm::qualifier)0>, glm::vec<3, float, (glm::qualifier)0>, ofColor_, glm::vec<2, float, (glm::qualifier)0> >&, bool): error: undefined reference to ‘tessAddContour’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > >&, bool): error: undefined reference to ‘tessTesselate’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > >&, bool): error: undefined reference to ‘tessGetVertices’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > >&, bool): error: undefined reference to ‘tessGetElements’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::performTessellation(ofPolyWindingMode, std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > >&, bool): error: undefined reference to ‘tessGetElementCount’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::tessellateToPolylines(ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > const&, ofPolyWindingMode, std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > >&, bool): error: undefined reference to ‘tessAddContour’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofTessellator.o):ofTessellator.cpp:function ofTessellator::tessellateToPolylines(std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > > const&, ofPolyWindingMode, std::vector<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> >, std::allocator<ofPolyline_<glm::vec<3, float, (glm::qualifier)0> > > >&, bool): error: undefined reference to ‘tessAddContour’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofOpenALSoundPlayer.o):ofOpenALSoundPlayer.cpp:function ofOpenALSoundPlayer::initFFT(int): error: undefined reference to ‘kiss_fftr_alloc’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofOpenALSoundPlayer.o):ofOpenALSoundPlayer.cpp:function ofOpenALSoundPlayer::initSystemFFT(int): error: undefined reference to ‘kiss_fftr_alloc’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofOpenALSoundPlayer.o):ofOpenALSoundPlayer.cpp:function ofOpenALSoundPlayer::getSpectrum(int): error: undefined reference to ‘kiss_fftr’

/home/user/openFrameworks/libs/openFrameworksCompiled/lib/linux64/libopenFrameworks.a(ofOpenALSoundPlayer.o):ofOpenALSoundPlayer.cpp:function ofOpenALSoundPlayer::getSystemSpectrum(int): error: undefined reference to ‘kiss_fftr’

collect2: error: ld returned 1 exit status

make[1]: *** [/home/user/openFrameworks/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:405: bin/polygonExample] Error 1

make[1]: Leaving directory ‘/home/user/openFrameworks/examples/graphics/polygonExample’

make: *** [/home/user/openFrameworks/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk:129: Release] Error 2

Seems fixed
found some info here:

needed to use apothecary to build fmod tess2 and kiss.

Not sure why this is broken in original download

Hey @steeley , I think a 64-bit version of OF for arm is not currently supported, though there has been some discussion about it. Glad you found a way to get it working though.

Hi Tim, yes would love 64 bit ARM…! Never got OF to work on a RPI4 64 bit, and nobody seems to know how. Probably won’t use them now unfortunately as you can’t buy RPI boards easily …(
OF development is a bit stalled it seems, so I generally use old Mac minis or sometimes small x86 PCs running Linux and use an OF stable release version.

The Latte Panda V1 is actually a low spec Intel Atom(CherryTrail) based mini board with built in Arduino Leonardo. Performance is not great, but once I nuked the Windows 10 that was on it
and replace it with RaspberryOS for Intel it was better. The Raspberry OS turned out to be 64 bit which was good.

1 Like