17

我对 CMake 有一个奇怪的问题。

我正在将 Curl 导入到我的项目中,因此我为您编写了我的 CMakeLists.txt 文件的简化摘要。

ADD_LIBRARY(libcurl共享导入)

SET_PROPERTY(目标 libcurl 属性 IMPORTED_LOCATION ../lib/libcurl.lib)

当我运行 CMake 时,它​​会为 MS VC++(也适用于 Linux)生成项目文件。然后进入项目文件,我发现对 curl 库(libcurl-NOTFOUND)的错误引用!

如果我将代码更改为静态导入:

ADD_LIBRARY(libcurl静态导入)

SET_PROPERTY(目标 libcurl 属性 IMPORTED_LOCATION ../lib/libcurl.lib)

我找到了对 ../lib/libcurl.lib 的正确引用。

你知道为什么会这样吗?

非常感谢你!

4

1 回答 1

19

对于共享库,IMPORTED_LOCATION必须指向 DLL,而不是导入库。请参阅文档。您可能还想设置IMPORTED_IMPLIB属性。

顺便说一句,CMake 也有一个用于 Curl 的查找包;也许你可以用那个?

于 2013-02-13T10:12:52.853 回答