【问题标题】:CMAKE does not create INSTALL project in Visual StudioCMAKE 不在 Visual Studio 中创建 INSTALL 项目
【发布时间】:2014-10-31 23:33:41
【问题描述】:

我正在尝试使用 CMAKE-gui 3.0.2 和 Visual Studio express 2013 编译一个库。 在 cmake-gui 中的配置/生成过程中,一切似乎都很好,因为我可以将 CMAKE_INSTALL_PREFIX 变量设置为我想要安装库的路径。而且我在配置和生成过程中没有遇到任何错误。

然后我打开生成的.sln 文件,我可以在其中构建ALL_BUILD 目标,该目标运行平稳,没有错误,也没有跳过任何目标。

但是,INSTALL 目标根本不存在于解决方案资源管理器中,因此我真的不知道如何安装该库。 经过进一步检查,我注意到 cmake 确实创建了一个名为 cmake_install.cmake 的文件,但我不知道该怎么处理它。

【问题讨论】:

  • 你的 CMakeList 中有install() 命令吗?
  • 不在 CMakeList.txt 文件中。在 gui 中,我可以看到变量名称,我只有 CMAKE_INSTALL_PREFIX 和 CMAKE_SKIP_INSTALL_RPATH(布尔值设置为关闭)
  • 好的,我的意思是项目中 CMake 可以看到它的任何地方,从顶层 CMakeList 开始解析。

标签: visual-studio-2013 cmake


【解决方案1】:

CMake 只会在实际需要安装任何东西时生成 INSTALL 目标。您的项目中似乎没有 install() 命令。

变量CMAKE_INSTALL_PREFIX 的存在并不意味着任何东西 - 该变量始终存在,并且用于在有任何要安装的东西时控制安装目标。

同样,文件cmake_install.cmake 总是被创建;但如果你检查它,你会发现它在你的情况下基本上是一个空操作(可能只是一些消息,设置 CMake 变量并可能创建一个不用于任何事情的清单)。

【讨论】:

  • 那么为什么 cmake 要求我提供 INSTALL_PREFIX 并且它甚至创建了一个 cmake_install.cmake 文件?顺便说一句,如果你想自己看一下,我正在尝试在这个文件夹中构建库:link
  • @alef0 我扩大了答案。
  • 我明白了。感谢您的回答。最后一个问题:假设这个库只是一个 Header only 库是否合理,因此我可以通过在我的项目中复制头文件来使用它?
  • @alef0 不,它不是仅标题。如果你查看它的CMakeLists.txt 文件,你会注意到它的源中有几个.cpp 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多