【发布时间】:2018-12-21 15:46:16
【问题描述】:
我有一个 Visual Studio 2017 解决方案,它具有一些仅标头的依赖项,这些依赖项是多平台的并使用 CMake。
我根本不需要 CMake,但我不断收到很多警告和问题,因为 Visual Studio 2017 坚持使用 CMake、探索这些项目等。
有没有办法完全禁用此解决方案/项目的 CMake 功能?
更新:
我将项目作为解决方案而不是 CMake 项目加载。
它是一个只有头文件的库,不需要 CMake 即可工作。它只是将它用于测试和其他目的。
我将依赖项保留为 git 子模块,因此我不想对其进行更改。通过将其作为包含路径等添加到主项目中,它可以正常工作。
我唯一想要避免的是这些目录中的 CMake 自动发现,因为我没有用它。
例如:
将Eigen 添加到您的项目中,作为名为 Eigen 的目录中的子模块。 (这是一个只有头文件的库)
在你的解决方案中编写一些代码并引用头文件(你需要添加正确的包含路径等)
您会看到 CMake 会选择 Eigen(实际上不需要时)
您将收到警告和目标等。
【问题讨论】:
-
如果您依赖使用 CMake 进行配置的第三方库,那么我认为您确实需要 CMake。请注意,坚持 CMake 的不是 VS2017 本身,而是你使用的库。
-
它是一个只有头文件的库。它不依赖于 CMake,它只是用于测试等。我对此非常确定。
-
如果是header-only库,就不能坚持使用CMake。只需将标题放在可用的地方,然后将路径添加到 -I 规则
-
我将依赖项保留为 git 子模块。通过添加为包含路径它可以正常工作。我唯一想要的是避免这些目录中的 CMake 自动发现,因为我没有用它。
-
如果您使用的是由 CMake 生成的解决方案,则它包含更新和重建 CMake 依赖项的规则。您必须手动删除这些 CMake 规则或从头开始创建新的解决方案文件。
标签: c++ visual-studio cmake