linker command failed "ld: library not found for -lOpenNI" in Xcode - c++

I'm trying to use OpenNI with my kinect but I have a problem during the build. I get this error :
ld: library not found for -lOpenNI
clang: error: linker command failed with exit code 1 (use -v to see invocation)
When I try "ld -lOpenNI" in terminal it finds it, and the path to the libOpenNI.dylib has been added to the library search paths (it's just /usr/lib). It has also been linked in "link binary With Libraries". I have tried to clean the build folder.
The whole compiler argument is :
Ld /Users/henrax/Library/Developer/Xcode/DerivedData/handtracker-dafbaeqppvdfnfhgffkyffwhskyl/Build/Products/Debug/handtracker normal x86_64
cd /Users/henrax/Documents/handtracker
export MACOSX_DEPLOYMENT_TARGET=10.11
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk -L/Users/henrax/Library/Developer/Xcode/DerivedData/handtracker-dafbaeqppvdfnfhgffkyffwhskyl/Build/Products/Debug -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib -F/Users/henrax/Library/Developer/Xcode/DerivedData/handtracker-dafbaeqppvdfnfhgffkyffwhskyl/Build/Products/Debug -filelist /Users/henrax/Library/Developer/Xcode/DerivedData/handtracker-dafbaeqppvdfnfhgffkyffwhskyl/Build/Intermediates/handtracker.build/Debug/handtracker.build/Objects-normal/x86_64/handtracker.LinkFileList -mmacosx-version-min=10.9 -stdlib=libc++ -framework GLUT -framework OpenGL /Applications/Kinect/OpenNI-Bin-Dev-MacOSX-v1.5.7.10/Samples/NiHandTracker/x64-Release/NiHandTracker.o /Applications/Kinect/OpenNI-Bin-Dev-MacOSX-v1.5.7.10/Samples/NiHandTracker/x64-Release/NiHandViewer.o /Applications/Kinect/OpenNI-Bin-Dev-MacOSX-v1.5.7.10/Samples/NiHandTracker/x64-Release/NiSimpleViewer.o -lOpenNI -lOpenNI.jni /Applications/Kinect/OpenNI-Bin-Dev-MacOSX-v1.5.7.10/Samples/NiHandTracker/x64-Release/main.o -Xlinker -dependency_info -Xlinker /Users/henrax/Library/Developer/Xcode/DerivedData/handtracker-dafbaeqppvdfnfhgffkyffwhskyl/Build/Intermediates/handtracker.build/Debug/handtracker.build/Objects-normal/x86_64/handtracker_dependency_info.dat -o /Users/henrax/Library/Developer/Xcode/DerivedData/handtracker-dafbaeqppvdfnfhgffkyffwhskyl/Build/Products/Debug/handtracker
It seems like a pretty easy problem but I have searched and not found any solution. Any help would be very welcomed !

Related

"Make" fails with Clang error - how do I get the error from Clang?

Main question is: How do I get the clang error out of make?
I have been trying to follow these instructions to install GLEW. On second look I've seen that GLEW might not really be necessary on Mac OS X, but I'd still like to find out how to get the error from the problem I was having. (I am not very experienced with make and could not make any similar online solutions work).
Theoretically I should download GLEW, unzip, and run 'make' in the file. This is the output of make:
$ make
cc -dynamiclib -install_name /usr/local/lib/libGLEW.2.1.0.dylib -current_version 2.1.0 -compatibility_version 2.1 -o lib/libGLEW2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL
ld: malformed file
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//OpenGLframework/OpenGL.tbd:4:18: error: unknown enumerated scalar
platform: zippered
^~~~~~~~
file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Framework//OpenGL.framework/OpenGL.tbd'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [lib/libGLEW.2.1.0.dylib] Error 1
Make -n shows that this is just the first command and it pretty much immediately fails. I have tried make V=1, make VERBOSE=1, and make SHELL='sh -x', but they don't give me additional detail about the clang error. I've also tried running the cc command with -v:
$ cc -v -dynamiclib -install_name /usr/local/lib/libGLEW.2.1.0.dylib -current_version 2.1.0 -compatibility_version 2.1 -o lib/libGLEW2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL
Apple LLVM version 9.1.0 (clang-902.0.39.1)
Target: x86_64-apple-darwin18.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
"Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -dylib -dylib_compatibility_version 2.1 -dylib_current_version 2.1.0 -arch x86_64 -dyib_install_name /usr/local/lib/libGLEW.2.1.0.dylib -macosx_version_min 10.14.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -o lib/libGLEW.2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL -L/usr/local/lib -lSystem / Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/lib/clang/9.1.0/lib/darwin/libclang_rt.osx.a
ld: malformed file
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//OpenGLframework/OpenGL.tbd:4:18: error: unknown enumerated scalar
platform: zippered
^~~~~~~~
file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Framework//OpenGL.framework/OpenGL.tbd'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [lib/libGLEW.2.1.0.dylib] Error 1
I don't think I am actually managing to get the real error out of clang. So how do I do that?
It is
Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld -demangle -lto_library /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libLTO.dylib -dynamic -dylib -dylib_compatibility_version 2.1 -dylib_current_version 2.1.0 -arch x86_64 -dyib_install_name /usr/local/lib/libGLEW.2.1.0.dylib -macosx_version_min 10.14.0 -syslibroot /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk -o lib/libGLEW.2.1.0.dylib tmp/darwin/default/shared/glew.o -framework OpenGL -L/usr/local/lib -lSystem / Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchains/usr/lib/clang/9.1.0/lib/darwin/libclang_rt.osx.a
command that fails, which is ld, not clang. You can run this command separately to get the same error message.
And
ld: malformed file
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks//OpenGLframework/OpenGL.tbd:4:18: error: unknown enumerated scalar
platform: zippered
^~~~~~~~
file '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Framework//OpenGL.framework/OpenGL.tbd'
is linker's error message. Unfortunately, I'm not familiar with compilation process on Mac, so can't advice how to fix it.

OS X g++ not finding OpenCV libraries

I have OpenCV 3.3.1 installed on OS 10.13.1 using Homebrew, and I'm getting a linker problem I can't diagnose. Does anyone have a clue what might be going on?
Command line:
g++ backsub.cpp `pkg-config --libs --cflags opencv` -o backsub
Returns the following error message:
ld: library not found for -llibopencv_stitching.3.3.1.dylib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Using the -v option gives, for the linker section (hard wrapped to make it easier to read):
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.
xctoolchain/usr/bin/ld" -demangle -lto_library
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.
xctoolchain/usr/lib/libLTO.dylib -no_deduplicate -dynamic -arch x86_64
-macosx_version_min 10.13.0 -o backsub
-L/usr/local/Cellar/opencv/3.3.1_1/lib
/var/folders/zn/p7grv7lj49lfdrvrtn7mp1kh0000gn/T/backsub-2eda30.o
-llibopencv_stitching.3.3.1.dylib -llibopencv_superres.3.3.1.dylib
-llibopencv_videostab.3.3.1.dylib -llibopencv_photo.3.3.1.dylib
-llibopencv_aruco.3.3.1.dylib -llibopencv_bgsegm.3.3.1.dylib
-llibopencv_bioinspired.3.3.1.dylib -llibopencv_ccalib.3.3.1.dylib
-llibopencv_dpm.3.3.1.dylib -llibopencv_face.3.3.1.dylib
-llibopencv_fuzzy.3.3.1.dylib -llibopencv_img_hash.3.3.1.dylib
-llibopencv_line_descriptor.3.3.1.dylib -llibopencv_optflow.3.3.1.dylib
-llibopencv_reg.3.3.1.dylib -llibopencv_rgbd.3.3.1.dylib
-llibopencv_saliency.3.3.1.dylib -llibopencv_stereo.3.3.1.dylib
-llibopencv_structured_light.3.3.1.dylib
-llibopencv_phase_unwrapping.3.3.1.dylib
-llibopencv_surface_matching.3.3.1.dylib
-llibopencv_tracking.3.3.1.dylib -llibopencv_datasets.3.3.1.dylib
-llibopencv_text.3.3.1.dylib -llibopencv_dnn.3.3.1.dylib
-llibopencv_plot.3.3.1.dylib -llibopencv_xfeatures2d.3.3.1.dylib
-llibopencv_shape.3.3.1.dylib -llibopencv_video.3.3.1.dylib
-llibopencv_ml.3.3.1.dylib -llibopencv_ximgproc.3.3.1.dylib
-llibopencv_calib3d.3.3.1.dylib -llibopencv_features2d.3.3.1.dylib
-llibopencv_highgui.3.3.1.dylib -llibopencv_videoio.3.3.1.dylib
-llibopencv_flann.3.3.1.dylib -llibopencv_xobjdetect.3.3.1.dylib
-llibopencv_imgcodecs.3.3.1.dylib -llibopencv_objdetect.3.3.1.dylib
-llibopencv_xphoto.3.3.1.dylib -llibopencv_imgproc.3.3.1.dylib
-llibopencv_core.3.3.1.dylib -lc++ -lSystem
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.
xctoolchain/usr/lib/clang/9.0.0/lib/darwin/libclang_rt.osx.a
ld: library not found for -llibopencv_stitching.3.3.1.dylib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
pkg-config seems to be doing the right things. All of the dylibs are in /usr/local/Cellar/opencv/3.3.1_1/lib and have the exact filenames specified in the command line. For some reason the linker isn't seeing them. Thanks for any help!

Compiling lsd_slam on OS X throws linking error ld: library not found for -lGL

I am trying to compile lsd_slam on OSX 10.9.5 and I get the build error as
ld: library not found for -lGL
clang: error: linker command failed with exit code 1 (use -v to see invocation)
From what I understand from this SO answer, it needs to compile with the flag-framework OpenGL. What changes are needed and in which Makefile so as this choses the framework instead of -lGL.
It should link correctly if you replace -lGL by -framework OpenGL

Can't start SFML app on Xcode

Installed SFML on Mac OS according to tutorial http://www.sfml-dev.org/tutorials/2.0/start-osx.php (Xcode 6.1), it's kinda worked, so I can create SMFL app, but when i try to build that standart project it comes with the following error
Ld /Users/andreybondar/Library/Developer/Xcode/DerivedData/Test-draycgeyywzpqjgugruuudxcdqqj/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test normal x86_64
cd /Users/andreybondar/Desktop/Test
export MACOSX_DEPLOYMENT_TARGET=10.10
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -L/Users/andreybondar/Library/Developer/Xcode/DerivedData/Test-draycgeyywzpqjgugruuudxcdqqj/Build/Products/Debug -L/usr/local/lib -F/Users/andreybondar/Library/Developer/Xcode/DerivedData/Test-draycgeyywzpqjgugruuudxcdqqj/Build/Products/Debug -F/Library/Frameworks -filelist /Users/andreybondar/Library/Developer/Xcode/DerivedData/Test-draycgeyywzpqjgugruuudxcdqqj/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test.LinkFileList -mmacosx-version-min=10.10 -frameworksfml-system -frameworksfml-window -frameworksfml-graphics -frameworksfml-audio -frameworksfml-network -stdlib=libc++ -fobjc-link-runtime -Xlinker -dependency_info -Xlinker /Users/andreybondar/Library/Developer/Xcode/DerivedData/Test-draycgeyywzpqjgugruuudxcdqqj/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test_dependency_info.dat -o /Users/andreybondar/Library/Developer/Xcode/DerivedData/Test-draycgeyywzpqjgugruuudxcdqqj/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test
clang: error: unknown argument: '-frameworksfml-system'
clang: error: unknown argument: '-frameworksfml-window'
clang: error: unknown argument: '-frameworksfml-graphics'
clang: error: unknown argument: '-frameworksfml-audio'
clang: error: unknown argument: '-frameworksfml-network'
So, what I should do to make it work, cause i already tried to manually put all SFML files in their directories, and don't know what else I can do.
You are reading the old version of the tutorial. Read the ones for SFML 2.1 instead. One of the differences is this message:
If you have Xcode 5, you must use the new version of the templates.
which is available on the download page. Long story short, this update of the template fixes a regression introduced in Xcode 5 and later.
source

Xcode 4 SFML 2 error

I used the SFML 2 installer, it can be found here. http://www.sfml-dev.org/download.php
Ld /Users/pjquinn/Library/Developer/Xcode/DerivedData/gangnam_style-ayfrlelgnycrzpdbmwbkqgtkkryv/Build/Products/Debug/gangnam_style.app/Contents/MacOS/gangnam_style normal x86_64
cd /Users/pjquinn/Programming/C++/gangnam_style
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
-L/Users/pjquinn/Library/Developer/Xcode/DerivedData/gangnam_style-ayfrlelgnycrzpdbmwbkqgtkkryv/Build/Products/Debug
-F/Users/pjquinn/Library/Developer/Xcode/DerivedData/gangnam_style-ayfrlelgnycrzpdbmwbkqgtkkryv/Build/Products/Debug
-filelist /Users/pjquinn/Library/Developer/Xcode/DerivedData/gangnam_style-ayfrlelgnycrzpdbmwbkqgtkkryv/Build/Intermediates/gangnam_style.build/Debug/gangnam_style.build/Objects-normal/x86_64/gangnam_style.LinkFileList
-mmacosx-version-min=10.7 -lsfml-system-d -lsfml-window-d -lsfml-graphics-d -lsfml-audio-d -lsfml-network-d -stdlib=libc++ -fobjc-link-runtime -framework Foundation -o /Users/pjquinn/Library/Developer/Xcode/DerivedData/gangnam_style-ayfrlelgnycrzpdbmwbkqgtkkryv/Build/Products/Debug/gangnam_style.app/Contents/MacOS/gangnam_style
ld: library not found for -lsfml-system-d clang: error: linker command failed with exit code 1 (use -v to see invocation)
When I'm creating a project should I select the Use Frameworks box?
Debug binaries are not shipped with the installer.
You should also have a look at the other issues
I used their template and checked the "Use Frameworks" box, but still had problems. What I ended up doing was adding the SFML frameworks files (which their installer script put in ~/Libraries/Frameworks) in the project myself (simple drag'n'drop). I double checked and made sure the added frameworks were then included in the Build Phases (which they were), and everything worked fine.