Visual Studio 2017 - 为依赖项禁用 CMake

Posted

技术标签:

【中文标题】Visual Studio 2017 - 为依赖项禁用 CMake【英文标题】:Visual Studio 2017 - Disable CMake for dependencies 【发布时间】: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 规则或从头开始创建新的解决方案文件。 【参考方案1】:

不要使用File->Open->CMake 打开 CMakeLists.txt。选择File->Open->File。您也可以尝试通过安装工具卸载 Visual Studio 2017 的visual studio c++ tools for cmake 部分。

【讨论】:

卸载太苛刻了。这仅在此解决方案中发生。我其实很喜欢 CMake,我只是不想在这里。 我愿意,但我不使用 Visual Studio 的捆绑版本。似乎正在发生的事情是您正在使用集成的 CMake 项目资源管理器,将其作为 CMake 项目打开。【参考方案2】:

在解决方案资源管理器中,找到 CMakeLists.txt,右键单击它。 选择自定义构建工具->常规。 从那里抹去一切。确保您有备份以防万一...

【讨论】:

此选项不存在。

以上是关于Visual Studio 2017 - 为依赖项禁用 CMake的主要内容,如果未能解决你的问题,请参考以下文章

依赖项更改时 Visual Studio 运行自定义构建工具

更新依赖项后,如何让 Visual Studio Code IDE 更新类型?

visual studio2017 添加dll库

visual studio 2017 界面设置

更新 Visual Studio 2017,现在出现编译错误 C7510:“回调”:使用依赖模板名称必须以“模板”为前缀

Visual Studio 2022 未加载依赖项