Ошибка перемещения: символ init_dynamic_string: указанный символ не найден

Я пытаюсь скомпилировать поддержку MySQL ODBC в Stata на машине Solaris. Единственное отношение, которое имеет здесь Stata, заключается в том, что версия Solaris скомпилирована как 64-битные двоичные файлы, поэтому все, к чему она прикасается, должно быть также 64-битным.

До сих пор я компилировал MySQL как 64-битный, libiodbc как 64-битный и mysql-connector-odbc как 64-битный.

Я думаю, это должно сработать, но есть ошибка, которую выдает iodbctest:

root@l5-cisswdia:/global/software_build_area/stata# iodbctest mysql-test
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0709.0909
1: SQLDriverConnect = [iODBC][Driver Manager]ld.so.1: iodbctest: fatal: relocation error: file /usr/lib/libmyodbc5w.so: symbol init_dynamic_string: referenced symbol not found (0) SQLSTATE=00000
2: SQLDriverConnect = [iODBC][Driver Manager]Specified driver could not be loaded (0) SQLSTATE=IM003

Я просмотрел init_dynamic_string, и он, кажется, находится в my_sys.h, но каждый случай, который я вижу CMake пытается включить эту библиотеку. nm показывает это как неопределенное в результирующей библиотеке:

root@l5-cisswdia:/global/software_build_area/stata# nm /usr/lib/libmyodbc5w.so | grep init_dynamic_string
[589] |                   0|                   0|NOTY |GLOB |0    |UNDEF  |init_dynamic_string

Так что ссылка есть, но не пункт назначения. Я перепробовал все, что мог придумать, чтобы включить его, но мне не повезло.

Вот скрипт настройки, который я использую для mysql-connector-odbc:

#!/bin/tcsh

setenv CC cc
setenv CFLAGS "-DSSL_EXPERIMENTAL -DSSL_ENGINE -KPIC -m64"
setenv CXX CC
setenv CXXFLAGS "-KPIC -m64"
setenv LD_LIBRARY_PATH "/usr/local/lib:$LD_LIBRARY_PATH"

cmake -G "Unix Makefiles" \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_FLAGS="-m64" \
    -DODBC_CFLAGS="-m64" \
    -DCMAKE_C_FLAGS="$CFLAGS" \
    -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
    -DODBC_INCLUDES="/usr/local/include" \
    -DODBC_LIB_DIR="/usr/local/lib" \
    .

Есть идеи? Спасибо:)

РЕДАКТИРОВАТЬ:

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

0 ответов

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