CMake的进口图书馆行为 [英] CMake imported library behaviour

查看:108
本文介绍了CMake的进口图书馆行为的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've a strange problem with CMake.

我卷曲导入到我的项目,所以我为你写我的CMakeLists.txt文件的简要概述。

I'm importing Curl into my project, so I write for you a simplified summary of my CMakeLists.txt file.

ADD_LIBRARY(libcurl的共享原装进口)

ADD_LIBRARY (libcurl SHARED IMPORTED)

SET_PROPERTY(TARGET libcurl的财产IMPORTED_LOCATION
  ../的lib / libcurl.lib)

SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib)

当我运行它的CMake生成MS VC ++(也可用于Linux)的项目文件。然后到项目文件中我发现一个错误的引用卷曲库(的libcurl-NOTFOUND )!

When I run CMake it generates the project files for MS VC++ (also for Linux). Then into the project file I find a wrong reference to curl library (libcurl-NOTFOUND)!

如果我改变我的code到静态导入:

If I change my code into static import:

ADD_LIBRARY(libcurl的静态原装进口)

ADD_LIBRARY (libcurl STATIC IMPORTED)

SET_PROPERTY(TARGET libcurl的财产IMPORTED_LOCATION
  ../的lib / libcurl.lib)

SET_PROPERTY(TARGET libcurl PROPERTY IMPORTED_LOCATION ../lib/libcurl.lib)

我找到合适的参考../的lib / libcurl.lib。

I find the right reference to ../lib/libcurl.lib.

你有任何想法,为什么出现这种情况?

Do you have any idea why this happens?

非常感谢你!

推荐答案

有关共享库,在 IMPORTED_LOCATION 必须指向DLL,而不是导入库。请参阅<一个href=\"http://www.cmake.org/cmake/help/v2.8.10/cmake.html#prop_tgt%3aIMPORTED_LOCATION\">documentation.您可能还需要设置<一个href=\"http://www.cmake.org/cmake/help/v2.8.10/cmake.html#prop_tgt%3aIMPORTED_IMPLIB\">IMPORTED_IMPLIB属性。

For a shared library, the IMPORTED_LOCATION must point to the DLL, not the import lib. See the documentation. You might also want to set the IMPORTED_IMPLIB property.

BTW,CMake的也有找到卷曲包装;也许你可以使用?

BTW, CMake also has a find package for Curl; perhaps you could use that?

这篇关于CMake的进口图书馆行为的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆