在centos下利用cmake链接mysql数据库时报错

在centos下开发服务器,利用vs中的cmake链接工具构建整个项目,但是在cmake链接mysql数据库时报错,执行cmake时通过,但是执行make时报错,信息如下:

make
[ 25%] Linking CXX executable imchatserver
/usr/bin/ld: 找不到 -lmysql
collect2: 错误:ld 返回 1
make[2]: *** [IM_server/CMakeFiles/imchatserver.dir/build.make:97:IM_server/imchatserver] 错误 1
make[1]: *** [CMakeFiles/Makefile2:100:IM_server/CMakeFiles/imchatserver.dir/all] 错误 2
make: *** [Makefile:91:all] 错误 2


而整个cmake 的代码如下:

cmake_minimum_required (VERSION 3.8)

project(IM_Server)

#这个宏,会影响编译参数
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -g -Wall -O0 -Wno-unused-variable -pthread")

#设置库目录
link_directories(# 针对64位的
    ${PROJECT_SOURCE_DIR}/lib
    /usr/lib64/mysql/
)

#查找库路径
find_library(MYSQL_LIB libmysqlclient.so.21 /usr/lib64/mysql/)
if (NOT MYSQL_LIB)#NOT 只能用大写
    message(FATAL_ERROR "not found mysqlclient.so at /usr/lib64/mysql/")
endif(NOT MYSQL_LIB)#必须进行匹配,否则会报错

set(chat_srcs
"IM_server.cpp"
"IM_server.h")

# 将源代码添加到此项目的可执行文件。
add_executable (imchatserver ${chat_srcs})

#只是确认库存在或者设置库目录,是没有用的,需要链接进来才能起效果
target_link_libraries(imchatserver mysql)

# 将源代码添加到此项目的可执行文件。
add_executable (imfileserver ${chat_srcs})
#只是确认库存在或者设置库目录,是没有用的,需要链接进来才能起效果
target_link_libraries(imfileserver)

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇博客: Centos7.4 如何使用cmake编译安装mysql中的 连接数据库 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    mysql  -u user -p                   
    例:mysql -u root -p
    常见错误如下:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.
    退出连接:
    QUIT 或者 Ctrl+D
    
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^