Как правильно связать путь внешней библиотеки в CMake?

В 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 файл из какой-то другой папки (скажем, файл foo2.lib присутствует в папке xyz рабочей области), как его определить?

0 ответов

Другие вопросы по тегам