找不到符号mysql\u select的版本节点_db@libmysqlclient_16

找不到符号mysql\u select的版本节点_db@libmysqlclient_16,mysql,linux,cmake,centos,libmysql,Mysql,Linux,Cmake,Centos,Libmysql,我试图在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位,虚拟机箱上的虚拟机 Mys

我试图在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 ()

将@hank的评论作为答案


我想你应该在添加库之前添加link_directories/usr/lib64/mysql,然后在添加库之前添加link_directories/usr/lib64/mysql目标链接库mysqlclient