CMake生成具有错误目标链接库前缀的VC解决方案

时间:2013-07-20 18:38:37

标签: visual-studio-2012 cmake shared-libraries

我在使用CMake 2.8.11.2尝试做一些看似非常简单的事情时遇到了麻烦。我有一个包含两个文件的文件夹:

-- CMAkeLists.txt --
add_executable(test test.c) 
target_link_libraries (test somelib)


-- test.c --
// Some c code

当我创建一个构建目录并发出cmake ..时,cmake会运行以下输出:

C:\Users\Enis\workspace_kepler\tmp\build>cmake ..
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Enis/workspace_kepler/tmp/build

在构建文件夹中生成MSVC 2012解决方案(因为我安装了MSVC2012)。现在,问题是,当我打开该解决方案并检查属性 - >配置属性 - >链接器 - >输入 - >附加依赖项下test项目的链接器配置时,我看到{{1添加为somelib并且visual studio不喜欢它。只有当我手动将其更改为;-lsomelib.lib时,它才能成功链接。

我做错了什么?为什么CMake犯了这么简单的错误?如何更改它生成的前缀?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。问题的根源是CMAKE_LINK_LIBRARY_FLAG,但我不知道是什么原因造成的。重置它,如下面的代码片段所示,对您有帮助。

set(CMAKE_LINK_LIBRARY_FLAG "")