一般来说,如果我们在C++程序中要使用mysql的库,最简单的就是
g++ server.cpp -o server -lmysqlclient
但要是在大一点的项目中,在数不清的源文件下使用g++命令来完成,怕是不太现实。
通常使用的工具为CMake,用其来构建项目,但它又没有包管理功能,对于我们想要使用的库,需要在 CMakeLists.txt
中引入。
引用的方式我这里选择 find_pakage
(其概述和使用方法这里就不过多赘述了)
set(CMAKE_MODULE_PATH /usr/share/cmake/Modules)
find_package(MySQL REQUIRED)
add_executable(server ${src_list})
if(MYSQL_FOUND)
target_link_libraries(server ${MYSQL_LIBRARIES})
else(MYSQL_FOUND)
message(FATAL_ERROR "MySQL library not found")
endif(CURL_FOUND)
对上面的代码做一下解释:
- 首先设置一下cmake module的路径,其实就是存放
.cmake
文件的位置。有时候看一些项目,会发现其根目录下会有一个cmake
目录,诶,没错,就和这个一样 - 使用find_package来引入依赖库
- 添加可执行程序server
- 如果使用find_package找到了MySQL库,则将其链接到server上,否则终止构建
值得注意的是,在CMAKE_MODULE_PATH目录下,必须有Find<LibaryName>.cmake
模块,在本例中,即为 FindMySQL.cmake
,该文件可在网上找到。