【发布时间】:2017-03-10 09:26:46
【问题描述】:
我决定尝试 VS2017 中的内置 CMake 支持,而不是弄清楚为什么我们的多库、多可执行项目在它使用的手工制作的 CMakeLists.txt 文件中存在 find_package 问题多年来,我决定先尝试一个简单的项目,来自 CMake wiki 的 FooBar 示例:https://cmake.org/Wiki/CMake/Tutorials/How_to_create_a_ProjectConfig.cmake_file
这个项目创建了一个共享库 foo 和一个链接到这个库的可执行 bar,并且非常简单。我解压了项目,用File->Open->Folder打开它,CMake配置启动并成功。我注意到的第一件事是没有更多的 Build 菜单,没有 F7 快捷方式来构建我的项目,而是我必须选择 CMake->Build CMakeLists.txt :-( Debug 菜单同样受阻,快速调试是我使用 Visual Studio 的原因第一名。这已经看起来很糟糕,但情况变得更糟:
构建失败,输出如下:
foo.vcxproj -> C:\Users\Enno\AppData\Local\CMakeBuild\639e9ecd-8891-eb38-b26b-ce84aa448eea\build\x86-Debug\foo\Debug\foo.dll
C:\Users\Enno\AppData\Local\CMakeBuild\639e9ecd-8891-eb38-b26b-ce84aa448eea\build\x86-Debug\bar\LINK : fatal error LNK1104: cannot open file '..\foo\Debug\foo.lib'
想法:
- 构建目录在 %APPDATA% 中?这会很烦人。
- 该位置确实没有 .lib 文件,只有 .dll。
此时我开始怀疑这可能不是 VS2017 的问题,但可能是示例项目本身或 CMake 的问题。所以我用cmake.exe -G "Visual Studio 14" .为VS2015创建了一个解决方案,我在VS2015中打开了,瞧!我收到了同样的错误信息。
有没有关于 SO 的 CMake 天才可以告诉我这个项目有什么问题?
【问题讨论】:
-
我开始怀疑这是因为共享库,并且与stackoverflow.com/questions/33062728/…有关
标签: visual-studio cmake