![]() |
|
|
![]()
|
|
| toshun |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
Здравствуйте, уважаемые программисты.
Сижу я на Mac OS Snow Leopard. Пишу я программу при помощи MYSQL API. На мак установил я dmg образ и с помощью портов mysql5. Сначала при подключении include <mysql.h> не находил библиотеку. Затем я в configure.ac я прописал и инклуды и либы echo " -I/opt/local/include/mysql5/mysql/ \\" >> autoconf.mk echo " -L/opt/local/lib/mysql5/mysql/ \\" >> autoconf.mk Библиотеки были найдены. Я со спокойной душой принялся писать код соединения с базой данной на сервере. Подключил
В теле программы написал простенький код для проверки:
И тут при компиляции возникла ошибка. Undefined symbols: "_mysql_init", referenced from: noname::Connect() in noname.o ld: symbol(s) not found collect2: ld returned 1 exit status Я так понимаю тут дело с библиотеками. То есть функция определена, но не описана или что-то типа того. Помогите разобраться пожалуйста. |
||||
|
|||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Make-файлы Вы исходя из религиозных соображений используете?
Как бы то ни было нужные нам флаги: -l и далее название библиотеки. Учитываем, что префикс lib и расширение .a or .dylib будут добавлены автоматически, поэтому, если либа называется , скажем, libmysql.a, пишем -lmysql). -L и далее пути поиска библиотек. -I и далее пути поиска заголовочных файлов. В итоге gcc будет вызван как-то так:
Что у Вас стоит после -l? -------------------- |
|||
|
||||
| toshun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
Makefile используется из-за большого количества файлов, который нужно собирать. Так получилось, что только в одной файле нужна будет mysql библиотека.
То, что Вы предложили не помогает. Такой же результат. Лучше скажите дело в том что компилятор нашел заголовочный файл, а саму библиотеку на нашел? |
|||
|
||||
| toshun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
Ошибка происходит во время линковки.
Подключил туда ключ -lmysql, что теперь выдает ld: library not found for -lmysql collect2: ld returned 1 exit status Объясните пожалуйста как подключить эти вонючие библиотеки. Я думал что с помощью -I и -L но как оказалось это не так. |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Посмотрите, какие файлы лежат в /opt/local/lib/mysql5/mysql/:
Может у Вас совсем по-другому библиотека называется. -------------------- |
|||
|
||||
| toshun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
libdbug.a libmysqlclient_r.la libheap.a libmysqld.a libmyisam.a libmystrings.a libmyisammrg.a libmysys.a libmysqlclient.16.dylib libndbclient.3.dylib libmysqlclient.a libndbclient.a libmysqlclient.dylib libndbclient.dylib libmysqlclient.la libndbclient.la libmysqlclient_r.16.dylib libvio.a libmysqlclient_r.a plugin libmysqlclient_r.dylib |
|||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
А надо, судя по всему, -lmysqlclient. -------------------- |
|||
|
||||
| toshun |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 10.2.2006 Репутация: нет Всего: нет |
||||
|
||||
| kemiisto |
|
|||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
Всегда пожалуйста. Поставил только что сам. Таки -lmysqlclient, так как либа называется libmysqlclient.a/libmysqlclient.dylib. -------------------- |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Продукция Apple | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |