Mac OS X: попытка связать (ld) с фреймворком

Я читаю «Продвинутое программирование для Mac OS X» Марка и Аарона. Я не могу заставить один оператор терминала работать правильно:

cc -g -o useadd -F./Adder/build -framework Adder useadd.m

Это на странице 45 - Глава 3 (Библиотеки). Как видите, я пытаюсь связать useadd.m с фреймворком, созданным с помощью Xcode. Когда я запускаю эту команду, я получаю эту ошибку:

ld: фреймворк не найден Adder

collect2: ld вернул 1 статус выхода

Я убедился, что папка /Adder/build существует в текущем каталоге. Внутри этой папки есть еще один: Adder.build, который содержит фреймворк. Я пробовал все возможные комбинации, но компоновщик просто не может найти мою структуру.

Я использую Mac OS X Leopard, и я думаю, что книга была опубликована до Leopard, когда Tiger был еще самой последней Mac OS.

Не могли бы вы мне помочь?


person MoonLight    schedule 21.06.2009    source источник


Ответы (1)


Путь, указанный с параметром -F, должен указывать на каталог, содержащий фреймворк (а не на подкаталог). Так что попробуйте -F./Adder/build/Adder.build, если он там действительно есть. Но обычно Xcode помещает продукты сборки в каталог с именем Debug или Release в каталоге сборки. Adder.build предназначен только для промежуточных результатов сборки.

person Nikolai Ruhe    schedule 21.06.2009
comment
Привет, спасибо, в общем, важно убедиться, что папка, которую вы указываете через -F, содержит фреймворк (ищите расширение .framework) - person MoonLight; 22.06.2009