Macports компиляции MySQL ++ не удалось - PullRequest
0 голосов
/ 26 мая 2010

Перед запуском "sudo port install mysqlxx + universal" я установил универсальный вариант mysql5.

... проверка необходимости -lm для использования математических функций Си ... нет

проверка необходимости -lsocket ... нет

проверка необходимости -lnsl ... нет

проверка каталога библиотеки MySQL ... / opt / local / lib / mysql5 / mysql

проверка наличия в каталоге MySQL include ... / opt / local / include / mysql5 / mysql

проверка, можем ли мы напрямую ссылаться на библиотеку MySQL C API ... нет

проверка удобства использования zlib.h ... да

проверка наличия zlib.h ... да

проверка на zlib.h ... да

проверка gzread в -lz ... да

проверка того, удастся ли добавить -lz, чтобы ссылка на MySQL C API была успешной ... нет

configure: error: невозможно подключиться к клиентской библиотеке MySQL!

1 Ответ

0 голосов
/ 27 мая 2010

Я подозреваю, что здесь происходит то, что вы используете Snow Leopard. В предыдущих версиях OS X компилятор C ++ по умолчанию создавал 32-битные исполняемые файлы по умолчанию, но в Snow Leopard это значение изменилось на 64-битное. Это может вызвать проблемы со связью с библиотекой MySQL C API, если она не создана как универсальная библиотека, поддерживающая как 64-, так и 32-разрядные исполняемые файлы.

Существует множество способов решения этой проблемы, но большинство из тех, о которых я знаю, либо не будут работать с MacPorts, либо я не знаю, как заставить их работать. Я добавил раздел об этом в MySQL ++ README для Mac OS X, который вы можете прочитать онлайн, здесь .

Возможно, вы сможете понять, как адаптировать эти решения к системе сборки MacPorts. Примерно так может работать:

CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 sudo port install mysqlxx +universal

Это зависит от тех переменных среды, которые проходят через барьеры sudo и port. Возможно, вам придется стать хитрее. Например:

sudo -s
CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 port install mysqlxx +universal

Как я прокомментировал выше, проще всего просто собрать из исходного архива.

...