Проект XCode - ld: не найдена библиотека для -llib

Недавно я столкнулся с проблемой CMake, которую можно найти в этой теме:

​​Cmake на OSX Yosemite 10.10.3 - GLEW: пакет 'gl' не найден

В конце концов это было решено, возможно, отчасти из-за моей неопытности в XCode и CMake. (Раньше я в основном использовал визуальную студию для компиляции проектов.)

После изменения связанного потока я получил предупреждение о моих библиотеках GLEW в CMake.

(Это то, о чем мне следует беспокоиться, или это не важно?):

MACOSX_RPATH is not specified for the following targets:

   GLEW_MX_shared
   GLEW_shared

Я просто проигнорировал это и попытался скомпилировать свой проект в XCode с выбранной целью ALL_BUILD. В мишени sparky было сказано, что включаемые файлы в main не найдены, поэтому я добавил файлы .h в папку inc моего проекта.

Когда я снова скомпилировал, компилятор снова начал жаловаться

(Я не знаю, что означает эта ошибка и как ее исправить.):

ld: library not found for -llib

Целый день гуглил и ничего не могу найти, чтобы решить эту проблему.

Очень утомительно работать с XCode в качестве IDE, но я действительно хочу узнать больше о разных платформах и их самых популярных IDE, чтобы я мог создавать многоплатформенные приложения с самого начала, а не портировать их впоследствии.

И если это имеет значение, я использую OSX Yosemite 10.10.3.

Чтобы упростить понимание моей проблемы, я поместил zip-архив своего проекта в свой дропбокс. https://www.dropbox.com/s/xnrh90kuih9ia5a/SPARKY%202.zip?dl=0

Не стесняйтесь задавать вопросы, если я снова и снова кратко объяснил, спасибо всем, кто вносит свой вклад. Я действительно многому научился после того, как обнаружил эти форумы.

РЕДАКТИРОВАТЬ: Хорошо, я загрузил свою машину с Windows, создал визуальную среду студии и попытался построить ее там. Похоже, что та же проблема возникает и здесь. Я просмотрел атрибуты/флаги компоновщика и увидел файл lib.lib, добавленный в процесс компоновки, который выглядит совсем не так.

При удалении файла ошибка исчезла и появились многие другие! (Что просто решается путем связывания соответствующих библиотек, поэтому я не буду их здесь рассматривать.)

Я неправильно понял ошибку на своем Mac и подумал, что это относится к случайной библиотеке, которую мне нужно было найти, но на самом деле это несоответствие в одном из моих файлов CMake.

РЕДАКТИРОВАТЬ2: Теперь мне нужно только выяснить, откуда берется lib.lib и как я могу убрать флаги из проекта, чтобы я мог сразу создать свою среду и построить!


person Jens Ackou    schedule 06.04.2015    source источник


Ответы (1)


Итак, мораль истории. Иногда решение находится прямо перед вами, и все равно это больше похоже на поиск иголки в стоге сена.

Я удалил следующее из моего корневого файла CMakeLists.txt, и случайная библиотека lib.lib исчезла из моих сгенерированных проектов.

SET( PROJ_LIBRARIES "lib" )

Я думал, что это добавило папку, содержащую библиотеки, но на самом деле это добавило еще один флаг для конкретной библиотеки, потому что эта переменная передавалась в:

TARGET_LINK_LIBRARIES( ${PROJ_NAME} ${PROJ_LIBRARIES} ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} )
person Jens Ackou    schedule 07.04.2015