使用 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 下似乎不起作用。
我有一些代码在 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 下似乎不起作用。