【发布时间】:2018-04-17 08:45:43
【问题描述】:
我已经将一个项目移植到了 arm cortex M7 芯片上,并且第一次使用 makefile,我使用的是 gnu-gcc 编译器集合。
是否建议用gcc驱动编译“c”代码,用g++驱动编译“c++”(app)代码,然后链接。 c 代码都是低级(头文件)寄存器访问地址等,不包含函数(尚未)或附加源文件。
或者如果需要可以修改头文件以使用g++编译,我可以使用g++编译器编译所有内容。
我已经设置好了,所以 gcc 正在编译 c 文件,而 g++ 正在编译 c++ 和链接。
【问题讨论】:
-
使用 C 编译器编译 C 代码 —
gcc。使用 C++ 编译器编译 C++ 代码 —g++。如果程序包含任何 C++ 代码,请与 C++ 编译器链接(并确保main()程序被编译为 C++ 代码)。如果都是 C,则与 C 编译器链接。如果代码实际上是双语的,我建议将其视为 C++,但没有硬性规定。 -
这不是火箭科学:用 C 编译器编译 C 代码,用 C++ 编译器编译 C++ 代码。
-
也许我应该说,头文件中唯一的代码是指针和宏的结构
-
@joeblogs:标题的内容只是结构,指针和宏在我看来没有区别。用 C 编译器编译 C 代码;使用 C++ 编译器编译 C++ 代码;如果系统中有 C++ 代码,则链接 C++ 编译器;只有在没有 C++ 代码的情况下才应该与 C 编译器链接。