如何在CMake中正确链接外部库的路径?

时间:2019-06-03 11:29:34

标签: visual-studio visual-studio-2015 cmake cmake-language cmake-format

在CMakeLists.txt中,如果我将.lib(静态库)文件路径定义为绝对路径,则它可以正常工作。但是,如果我定义相对路径相同,则会引发错误。没有硬编码怎么解决?

文件结构:

|--D
|  |--Rohit
|  |  |--Sandbox
|  |  |  |--demo
|  |  |  |  |--src
|  |  |  |  |  |--abc
|  |  |  |  |  |  |--build
|  |  |  |  |  |  |--CMakeLists.txt
|  |  |  |  |  |  |--lib
|  |  |  |  |  |  |  |--foo.lib
.
.
|  |  |  |  |--workspace
|  |  |  |  |  |--xyz
|  |  |  |  |  |  |--foo2.lib

这种方法工作正常:

add_library(foo STATIC IMPORTED)
set_property(TARGET foo PROPERTY IMPORTED_LOCATION D:/Rohit/Sandbox/demo/src/abc/lib/foo.lib)

这种方式会引发错误:

add_library(foo STATIC IMPORTED)
set_property(TARGET foo PROPERTY IMPORTED_LOCATION "/lib/foo.lib")

我的CMakeLists.txt路径: D:\ Rohit \ Sandbox \ demo \ src \ abc \ CmakeLists.txt

这是我得到的错误: LINK:致命错误LNK1104:无法打开文件'\ lib \ foo.lib'

如果我还想从其他文件夹中包含.lib文件(比如说工作区的xyz文件夹中存在foo2.lib文件),如何定义它?

0 个答案:

没有答案