【发布时间】:2017-05-31 13:11:04
【问题描述】:
在 atollic 中处理嵌入式 c++/c 项目时(eclipse 也一样),在您的项目设置下,您有:
> Assembler (arm-atollic-eabi-gcc -c)
> C Compiler (arm-atollic-eabi-gcc -c)
> C++ Compiler (arm-atollic-eabi-g++ -c)
> C++ Linker
这意味着,我可以在 c++ 项目中使用 C 代码而无需任何修改,因为所有 .c 文件都使用 gcc 编译,所有 .cpp 文件使用 g++ 编译。此外,如果 C 代码在标头中包含 #if __cplusplus extern "C" { 或 .cpp 代码将包含 V 代码,如 "#if __cplusplus extern "C" { #include "c_header.h" ... 这绝对没有区别,因为 .c 文件是用 gcc 编译的定义__cplusplus。
这样对吗??
当我想纯粹使用 g++ 构建时,因为我所有的 C 代码都以这种方式包含在内...
extern "C" {
#include "c_header.h"
}
如何从 atollic/eclipse 中删除 C 编译器?
我尝试删除项目文件“.cproject”中定义的工具,然后再次打开项目,但它们是自动添加的。
【问题讨论】:
-
你到底在问什么?请看How do I ask a good question?
-
这个问题是2年前的问题,所以我怀疑原作者在这里需要帮助,但对于其他人。据我所知,他想从编译过程中删除 C 编译器。您可以将 C++ 编译器的文件关联更改为包括 .c 和 .h。然后删除 C 编译器的关联。我认为这应该可行。
-
你好,2 年是很长的时间,但我还没有弄清楚如何做到这一点。最初的问题是如何使用 g++ 构建 c 和 c++ 源代码,因为 g++ 将看到 extern "C" 并将其构建(mangle)为 c 源代码。