GCC 会根据文件扩展名(.c、.cc)、命令行参数(-x)或直接调用适当的编译器(例如,g++ 而不是 gcc)自动在编译器之间切换。
有没有办法使用文件内的编译指示覆盖这些?
更新,评论后:
我正在将当前为 50/50 C & C++ 的代码库转换为完全使用 C++ 编译器编译。这是为了允许当前的“C”模块调用我无法更改(并且不希望包装)的新 C++ 基础。对于真正是 C 的文件,我想将扩展名保留为 .c,即使它们现在具有 C++ 链接。我认为将它们保留为“.c”表明它们为何保持原样(我在这里考虑后代!;-))但更改构建系统以适应每个更改的 C 文件名也是一项艰巨的工作。更糟糕的是,一小部分 C 文件不会完全转换为 C++,因此如果它们不调用 C++ 基础,我想将它们保留为 C。但重写它们不是一种选择,稳定性的风险项目太大了。