Ld: символ не найден для архитектуры x86_64 (Xcode 4)//opengles.o
Я делаю приложение с командами команд xcode с внешними библиотеками и получаю некоторые ошибки.
что я пытался их восстановить:
- Создание с помощью другого компилятора
- удалите папку GLES и добавьте ее снова
- Создайте его на 32 и 64
Я что-то пропустил относительно opengles.cpp?
Если у вас есть представление о том, что можно сделать дальше, скажите так, ниже вы можете найти всю информацию о проекте и ошибке. Если вам нужна дополнительная информация, я рад помочь вам. Кроме того, если вы знаете, как получить образец NiUsertracker из opnni, скомпилированный в xcode 4, это также будет большой помощью для решения этой проблемы.
Ошибка:
![enter image description here]()
Проблема может иметь какое-то отношение к этим файлам:
![enter image description here]()
Информация о настройке проекта (это инструмент командной строки, а не приложение):
![enter image description here]()
Снимок экрана при построении
![enter image description here]()
Настройки сборки
![enter image description here]()
Ответы
Ответ 1
Обычно, когда я получаю такие ошибки, это потому, что я забыл связать с библиотекой. В имеющейся папке содержатся только заголовки; попробуйте найти структуру OpenGL ES. (Я думаю, что Xcode поставляется с базой GLES, попробуйте выполнить поиск.)
Ответ 2
Запустите команды вручную в терминале (Terminal.app), чтобы выяснить, в чем проблема:
[ 11:56 [email protected] ~ ]$ Ld /Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Products/Debug/scene normal x86_64
[ 11:56 [email protected] ~ ]$ cd /Users/olivierjanssens/Documents/xcode/scene
[ 11:56 [email protected] ~ ]$ setenv MACOSX_DEPLOYMENT_TARGET 10.7
[ 11:56 [email protected] ~ ]$ /Developer/usr/bin/llvm-g++-4.2 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Products/Debug -L/Users/olivierjanssens/Documents/xcode/scene/Libs -F/Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Products/Debug -filelist /Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Intermediates/scene.build/Debug/scene.build/Objects-normal/x86_64/scene.LinkFileList -mmacosx-version-min=10.7 /usr/lib/libnimCodecs.dylib /usr/lib/libnimMockNodes.dylib /usr/lib/libnimRecorder.dylib /usr/lib/libOpenNI.dylib /usr/lib/libXnVFeatures.dylib /usr/lib/libXnVHandGenerator.dylib -framework GLUT -framework OpenGL /Users/olivierjanssens/Documents/xcode/scene/Libs/glut64.lib -o
После запуска последней команды (/Developer/usr/bin/llvm-g++-4.2
) она покажет причину сбоя.
Если команда setenv MACOSX_DEPLOYMENT_TARGET 10.7
не работает, замените setenv
на export
и поместите =
перед 10.7
следующим образом:
[ 11:56 [email protected] ~ ]$ export MACOSX_DEPLOYMENT_TARGET="10.7"
Кажется, что вам не хватает настроек для вашей конфигурации сборки. Возможно, имя приложения (MyApp.app). Убедитесь, что вы ничего не пропустили с вкладки "Информация" в окне настроек проекта (просто нажмите верхний элемент из списка файлов слева).
Из llvm-gcc man page:
-o filename
Укажите выходной файл для имени файла.
Ответ 3
удалите фреймворк. И добавьте его снова. Запустите Xcode и перезапустите его.