0

在 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

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

另外,如果我想包含其他文件夹中的 .lib 文件(假设 foo2.lib 文件存在于工作区的 xyz 文件夹中),如何定义它?

4

0 回答 0