使用 Microchip XC16 编译器将 foo.cpp 构建为 C 代码

Building foo.cpp as C code with Microchip XC16 compiler

我有一些代码在 C++ Windows 应用程序和 XC16 C 应用程序之间共享。源代码的编写方式使其可以在 MSVC 和 XC16 下干净地编译(适当使用 __cplusplus 宏)。

问题是 XC16 拒绝构建 foo.cpp。我必须将文件复制到 foo.c,然后再复制回来。这对修订控制造成了严重破坏,并且当复制功能在构建过程中自动执行时,ide 中的代码编辑会出现问题。

有没有办法让 XC16 构建(作为 C)扩展名为 cpp 的文件? (注意头文件是foo.h,所以这不是问题)。

我们在我们的 Windows 构建环境 (Embarcadero CBuilder) 中发现了一个标志,它强制将 foo.c 编译为 C++。因此,我们将重命名为 foo.c。问题解决了。 (编辑:其他人评论说 VC 中存在类似的标志)

我们无法在 XC16(基于 gcc 4.5.1)中找到可比较的标志来将 foo.cpp 视为 C 源文件。 -x 标志 (Forcing gcc to compile .cpp file as C) 在 MPLABX 下似乎不起作用。