【发布时间】:2020-01-13 12:07:31
【问题描述】:
背景
我有许多头文件作为库的一部分(称为 A),也可以在其他库的外部使用(称为 C)。
我想编译为 A 部分的编译,以确保标题是独立的。 (目前,这涉及编译 C,如果有问题,重新编译 A 并发布新版本)。
问题
编译标头并丢弃结果的最佳方法是什么?我只对他们的成功编译感兴趣。
我正在考虑将它们复制并重命名为 cpp 文件(这是一个 C++ 项目),然后用它们创建一个库来检查错误。但是有没有更简单的解决方案?
我的目标是命令行等价于
g++ [compile_flags] -c header.hpp
并检查错误但对生成的文件不感兴趣。
我想要一些适用于 cmake 3.13.5(或更早版本)的东西。
谢谢
【问题讨论】:
-
我试过了。但它需要 cmake 3.16,而我想要
-
您的头文件包含内联函数和模板?除非在某处使用它们,否则编译器不会实例化和编译它们。您的库是否有针对这些标头中的代码的测试套件?编译它以检查错误。
-
@Enno 没有模板或内联函数。只是类、结构和其他 POD。如“背景”中所述,这样做的目的是在制作 A 时编译一些头文件,这样我们在编译 C 时就不会失败。不幸的是,测试套件大多是作为 C 构建的一部分完成的,这为时已晚。否则这不是一个严重的问题 - 只是试图在我们的开发周期中节省几分钟。
-
所以您的目标只是确保这些标头没有丢失的包含或语法错误?在这种情况下,如果你只是从一个空的 .cpp 文件中包含所有它们并编译它,那不会做你想要的吗?
标签: cmake