找不到符号mysql_select_db @ libmysqlclient_16

时间:2015-05-12 03:49:55

标签: mysql linux cmake centos libmysql

我正在尝试使用mysql c api在linux上构建我的应用程序,并在链接阶段得到此错误,它在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 个答案:

答案 0 :(得分:0)

将@hank的评论作为答案

我想您应该在link_directories(/usr/lib64/mysql)之前添加add_library,然后在{12} 50年5月12日之前添加target_link_libraries(myapp mysqlclient_r)