0

我在尝试用 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

并且在 build 文件夹中生成了一个 MSVC 2012 解决方案(因为我安装了 MSVC2012)。现在,问题是,当我打开该解决方案并test在 Properties->Configuration Properties->Linker->Input->Additional Dependencies 下检查项目的链接器配置时,我看到它somelib被添加为;-lsomelib.lib并且 Visual Studio 不喜欢那样。仅当我将其更改为somelib.lib手动时,它才会成功链接。

我究竟做错了什么?为什么 CMake 会犯这么简单的错误?我可以做些什么来更改它生成的前缀?

4

1 回答 1

0

我遇到了同样的问题。问题的根源是,CMAKE_LINK_LIBRARY_FLAG但我不知道是什么造成的。重置它(在下面的代码段中演示)应该对您有所帮助。

set(CMAKE_LINK_LIBRARY_FLAG "")
于 2020-10-06T18:20:55.223 回答