我对 CMake 有一个奇怪的问题。
我正在将 Curl 导入到我的项目中,因此我为您编写了我的 CMakeLists.txt 文件的简化摘要。
ADD_LIBRARY (libcurl SHARED IMPORTED)
SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib)
当我运行 CMake 时,它会为 MS VC++(也适用于 Linux)生成项目文件。然后进入项目文件我发现curl库的引用错误(libcurl-NOTFOUND)!
如果我将代码更改为静态导入:
ADD_LIBRARY (libcurl STATIC IMPORTED)
SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib)
我找到了对 ../lib/libcurl.lib 的正确引用。
你知道为什么会这样吗?
非常感谢!
最佳答案
对于共享库,IMPORTED_LOCATION
必须指向 DLL,而不是导入库。见 documentation .您可能还想设置 IMPORTED_IMPLIB属性。
顺便说一句,CMake 也有一个 find package对于 curl ;也许你可以使用它?
关于c++ - CMake 导入的库行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850736/