CMake 链接到导入库

CMake linking to an import library

我需要 link 我的项目到 libmysql.dll 动态库(我需要这样做,因为我正在将我的项目构建为 /MDd , 参考: https://dev.mysql.com/doc/refman/5.6/en/c-api-building-clients.html)

现在棘手的部分是它是一个导入库(参考:https://msdn.microsoft.com/en-us/library/d14wsce5.aspx)所以有一个libmysql.lib 还有。

我正在使用 CMake 进行构建:

set(MYSQL_DIR "C:/Program Files/MySQL/MySQL Connector C 6.1"
    CACHE PATH "The path to the MySQL C API library")
include_directories(${MYSQL_DIR}/include)
find_library(mysql NAMES libmysql PATHS ${MYSQL_DIR}/lib)
message(STATUS "mysql library: " ${mysql})

CMake 找到库 libmysql.lib 但是当我尝试编译时我得到以下 linker 错误:

LINK : fatal error LNK1104: cannot open file 'mysql.lib'

mysql 如上所示,是包含 libmysql.lib[=36 路径的 CMake 变量的名称=].

我试过 link 直接到 .dll 但它也不起作用,CMake 没有找到 .dll。

问题

我应该如何在 CMake 中进行 link 导入库?谢谢你的帮助。

您需要在 target_link_libraries() 中使用 find_library() 调用的结果。在你的情况下是 target_link_libraries(main ${mysql}).