Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake链接到导入库_Cmake_Libmysql_Import Libraries - Fatal编程技术网

CMake链接到导入库

CMake链接到导入库,cmake,libmysql,import-libraries,Cmake,Libmysql,Import Libraries,我需要将我的项目链接到libmysql.dll动态库(我需要这样做,因为我正在将我的项目构建为/MDd,参考:) 现在棘手的是,它是一个导入库(参考:),因此也有一个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(${M

我需要将我的项目链接到libmysql.dll动态库(我需要这样做,因为我正在将我的项目构建为/MDd,参考:)

现在棘手的是,它是一个导入库(参考:),因此也有一个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,但当我尝试编译时,我得到以下链接器错误:

LINK : fatal error LNK1104: cannot open file 'mysql.lib'
mysql如上所述,是包含libmysql.lib路径的CMake变量的名称

我曾尝试直接链接到.dll,但也不起作用,CMake找不到.dll

问题:
我应该如何在CMake中继续链接到导入库?谢谢你的帮助

您需要使用
find_library()
调用
target_link_libraries()
的结果。在您的例子中,它是
target\u link\u libraries(main${mysql})

您的
target\u link\u libraries()
调用看起来像什么?
target\u link\u libraries(main mysql)
,main只是一个来自单个文件main.cpp的可执行文件。谢谢@arrowd它现在编译了,但是当启动程序时,我收到一个错误,告诉我我的电脑中缺少libmysql.dll。我想我应该让CMake知道在哪里也可以找到.dll。你需要将它放在你的.exe文件中。有没有其他方法指定在哪里查找dll?理想情况下,CMake?是OS loader查找库。对于Windows,规则是:查找.exe目录、查找工作目录、查找Windows\System32目录。谢谢@arrowd。我找到了另一种方法,即设置path环境变量,如本答案中所述