Не найден узел версии для символа mysql_select_db@libmysqlclient_16
Я пытался собрать свое приложение на Linux с помощью MySQL C API, и получил эту ошибку на этапе ссылки, он отлично работает на Windows. Пожалуйста, помогите, спасибо!
сообщение об ошибке:
/bin/ld: myapp.so : version node not found for symbol mysql_select_db@libmysqlclient_16
/bin/ld: failed to set dynamic section sizes: Bad value
ОС: CentOS 7, 64-битная (ВМ на виртуальной коробке)
Mysql: 5.6.24 (версия для сообщества, установленная через yum)
файл.bashrc
export LIBMYSQL_INCLUDE_DIR=/usr/include/mysql
export LIBMYSQL_LIBRARY=/usr/lib64/mysql
export LD_LIBRARY_PATH=/usr/lib64/mysql:$LD_LIBRARY_PATH
Файл cmake: (переменные устанавливаются в соответствии с переменными окружения)
FILE(GLOB SRC_MYAPP myapp/*.c myapp/*.h)
INCLUDE_DIRECTORIES(${LIBMYSQL_INCLUDE_DIR})
ADD_LIBRARY(myapp ${SRC_MYAPP})
IF (MSVC_IDE)
TARGET_LINK_LIBRARIES(myapp ${LIBMYSQL_LIBRARY}/libmysql)
ELSE ()
TARGET_LINK_LIBRARIES(myapp ${LIBMYSQL_LIBRARY}/libmysqlclient_r.a)
ENDIF ()
1 ответ
Решение
Поместите комментарий @hank как ответ
Я полагаю, вы должны добавить link_directories(/usr/lib64/mysql)
до add_library
а потом target_link_libraries(myapp mysqlclient_r)
- Хэнк 12 мая в 12:50