Как связать сторонний dylib в приложении Mac OS X с помощью XCode 4.5? Ошибка "неопределенные символы"

Я пытаюсь использовать функции, определенные в сторонней динамической библиотеке (libmysql), в настольном приложении для Mac OS X. Я использую XCode 4.5.1 в Mac OS X v. 10.8.2.

Вот что я сделал до сих пор:

1) Я загрузил файлы 64-разрядного C-соединителя Mac OS X 10.5 x86 с http://dev.mysql.com/downloads/connector/c/ (это самая последняя доступная версия).

2) Я скопировал файлы с образа диска в локальный каталог.

3) Я добавил путь к этому локальному каталогу в Настройки сборки моего проекта-> Пути поиска-> Пути поиска в заголовке пользователя и установил "Всегда искать пути пользователя" на "Да"

4) Я добавил libmysql.client в Фазы сборки-> Копировать файлы

5) Я добавил libmysql.client к ресурсам Copy Bundle

6) Я написал тестовую функцию в своем коде:

#import "mysql.h"
-(NSNumber*)testFunction {

mysql_library_init(0, NULL, NULL);
mysql_library_end();

return [NSNumber numberWithInt:8];
}

Проект компилируется (цель: мой Mac 64-битный), но я получаю ошибки "Неопределенные символы для архитектуры x86_64" для двух функций mysql от компоновщика. Вот полное сообщение об ошибке:

Ld "/ Users /chapka/ Библиотека / Разработчик /Xcode/DerivedData/The_Single_Table_Admin_Tools-ctdgurwiktybjqcnlfuufetgimfy/Build/Products/Debug/ Администрирование единой таблицы Tools.app/Contents/MacOS/ Инструменты администрирования единой таблицы" normal / 86 / cd chapka/ Документы / Разработчик / Единая таблица / Инструменты администрирования одной таблицы " setenv MACOSX_DEPLOYMENT_TARGET 10.8 /Applications/Xcode.app/Contents/Dveloper/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -86 x64 -isysroot /Applications.app / Содержание / Разработчик / Платформы /MacOSX.platform/ Разработчик /SDKs/MacOSX10.8.sdk -L/ Пользователи /chapka/ Библиотека / Разработчик / Xcode / DerivedData / The_Single_Table_Admin_Tools-ctdgurwiktybjqcnlfuufetgimfy / Debild-Products / Debild / Build / Продукты / Build Пользователи /chapka/ Документы / Разработчик / Единая таблица / Инструменты администрирования единой таблицы " "-L/ Пользователи / Чапка / Документы / Разработчик / Единая таблица / Инструменты администрирования единой таблицы " "-L/ Пользователи / Чапка / Документы / Разработчик / Единая таблица / Администрирование единой таблицы /../../ Библиотеки /mysql" -F/Users/chapka/ Библиотека / Разработчик / Xcode / DerivedData / The_Single_Table_Admin_Tools-ctdgurwiktybjqcnlfuufetgimfy / Build / Продукты / Отладка - список файлов "/ Пользователи /chapka/ Библиотека / Разработчик / Xcode / Derivedd Buffer.build / Debug / Инструменты администрирования единой таблицы.build/Objects-normal/x86_64/ Инструменты администратора единой таблицы.LinkFileList" -mmacosx-version-min=10.8 -fobjc-arc -fobjc-link-runtime -framework Cocoa -o "/Users/chapka/ Библиотека / Разработчик /Xcode/DerivedData/The_Single_Table_Admin_Tools-ctdgurwiktybjqcnlfuufetgimfy/Build/Products/Debug/ Администрирование единой таблицы Tools.app/Contents/MacOS/The Single Table Admin Tools"

Неопределенные символы для архитектуры x86_64: "_mysql_server_end", на который ссылаются из: -[TSTDataSource gameCount] в TSTDataSource.o "_mysql_server_init", на который ссылаются: -[TSTDataSource gameCount] в TSTDataSource.o_64, не найден: ошибка: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

Я искал другие вопросы, подобные этому, но все они, кажется, решаются с помощью шагов 4 и / или 5 выше. Единственное другое предложение, которое я нашел, - это использовать install_name_tool, но я не уверен, что именно мне нужно изменить или на что мне нужно его изменить. Если это вероятная проблема, любые намеки будут более чем приветствоваться.

0 ответов

Другие вопросы по тегам