在 cmakelist.txt 中添加 link mysql 库
Add and link mysql libraries in a cmakelist.txt
我在一个需要使用 MySQL 库的项目中工作。我过去曾取得过成功,使用一个简单的 makefile,我在其中编写了特定的标志。
CFLAGS+=`mysql_config --cflags`
LIB+=`mysql_config --libs`
但是...我的项目需要使用 cmakelist,我在这方面遇到了困难。我可以用这段代码添加 GTK 库:
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED gtk+-3.0)
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
target_link_libraries( cgm ${GTK_LIBRARIES} )
但是 MySQL 我有麻烦了。我尝试了很多事情都没有成功,但我相信这与 GTK 示例类似。谁能帮我解决这个问题?
最简单的方法可能是找到(例如使用 google)FindMySQL.cmake
脚本,它适合您。该脚本可以像往常一样与 find_package
命令一起使用:
list(CMAKE_MODULE_PATH APPEND <directory-where-FindMySQL.cmake-exists>)
find_package(MySQL REQUIRED)
include_directories(${MYSQL_INCLUDE_DIR})
target_link_libraries(cgm ${MYSQL_LIB})
(具体脚本的变量名称 MYSQL_INCLUDE_DIR
和 MYSQL_LIB
可以不同)。
但是手动 link 使用 MySQL 库并不难,知道计算 CFLAGS 和 LIBS 的方法。
在配置阶段(执行cmake
)程序可以是运行和execute_process, for add CFLAGS and LIBS for specific target use target_compile_options and target_link_libraries对应的:
execute_process(COMMAND mysql_config --cflags
OUTPUT_VARIABLE MYSQL_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND mysql_config --libs
OUTPUT_VARIABLE MYSQL_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
target_compile_options(cgm PUBLIC ${MYSQL_CFLAGS})
target_link_libraries(cgm ${MYSQL_LIBS})
我在一个需要使用 MySQL 库的项目中工作。我过去曾取得过成功,使用一个简单的 makefile,我在其中编写了特定的标志。
CFLAGS+=`mysql_config --cflags`
LIB+=`mysql_config --libs`
但是...我的项目需要使用 cmakelist,我在这方面遇到了困难。我可以用这段代码添加 GTK 库:
find_package(PkgConfig REQUIRED)
pkg_check_modules(GTK REQUIRED gtk+-3.0)
include_directories(${GTK_INCLUDE_DIRS})
link_directories(${GTK_LIBRARY_DIRS})
target_link_libraries( cgm ${GTK_LIBRARIES} )
但是 MySQL 我有麻烦了。我尝试了很多事情都没有成功,但我相信这与 GTK 示例类似。谁能帮我解决这个问题?
最简单的方法可能是找到(例如使用 google)FindMySQL.cmake
脚本,它适合您。该脚本可以像往常一样与 find_package
命令一起使用:
list(CMAKE_MODULE_PATH APPEND <directory-where-FindMySQL.cmake-exists>)
find_package(MySQL REQUIRED)
include_directories(${MYSQL_INCLUDE_DIR})
target_link_libraries(cgm ${MYSQL_LIB})
(具体脚本的变量名称 MYSQL_INCLUDE_DIR
和 MYSQL_LIB
可以不同)。
但是手动 link 使用 MySQL 库并不难,知道计算 CFLAGS 和 LIBS 的方法。
在配置阶段(执行cmake
)程序可以是运行和execute_process, for add CFLAGS and LIBS for specific target use target_compile_options and target_link_libraries对应的:
execute_process(COMMAND mysql_config --cflags
OUTPUT_VARIABLE MYSQL_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND mysql_config --libs
OUTPUT_VARIABLE MYSQL_LIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
target_compile_options(cgm PUBLIC ${MYSQL_CFLAGS})
target_link_libraries(cgm ${MYSQL_LIBS})