Не найден узел версии для символа 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

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