Eclipse CDT:如何在 C 源代码上使用 GCC C++ 编译器?

Posted

技术标签:

【中文标题】Eclipse CDT:如何在 C 源代码上使用 GCC C++ 编译器?【英文标题】:Eclipse CDT: How to use GCC C++ compiler on C sources? 【发布时间】:2015-11-05 08:50:53 【问题描述】:

我有一个 C++ 项目,我需要在其中使用一些外部 C 源代码。 我需要使用与项目使用相同的工具来编译它们:GCC C++ 编译器。

我在 Visual Studio 中有一个设置可以为每个 C 源进行设置:C/C++ -> 高级 -> 编译为 C++ 代码 (/TP)。

我可以用 Eclipse CDT 做到这一点吗?

【问题讨论】:

是的,只需创建c++项目或在构建项目属性中设置g++编译器 通常不能使用 C++ 编译器编译 C 代码,因为 C 不是 C++ 的子集。例如,int *p = malloc(sizeof *p); 是合法的 C,但不是 C++。 @BaummitAugen 我认为你错了。您可以在 c++ 中使用 malloc 或任何其他 c 函数并使用 g++ 进行编译。 @clsbartek 仔细阅读,或许可以尝试一下 @clsbartek 当然,您可以在两种语言中使用malloc(),但这不是鲍姆的重点。语法在一种语言中是合法的,但在另一种语言中是合法的。 【参考方案1】:

在项目选项中:

    您可以将-x c++ 添加到编译器标志:

    或者将工具设置为 g++ 而不是 gcc

【讨论】:

非常感谢这两个解决方案。在提到的C代码中也有可能摆脱这种错误吗? #if UNIX_PLATFORM && !defined(__cplusplus) #error This file needs to be compiled as C++ on Unix #endif __cplusplus not defined 正如您在我的直播中看到的,-x c++ 不会触发#error。它没有。祝你好运

以上是关于Eclipse CDT:如何在 C 源代码上使用 GCC C++ 编译器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu中使用Eclipse + CDT开发C/C++程序

如何在Ubuntu中使用Eclipse + CDT开发C/C++程序

如何在Ubuntu中使用Eclipse + CDT开发C/C++程序

如何在Ubuntu中使用Eclipse + CDT开发C/C++程序

如何在 gnu arm eclipse 或 cdt 上的项目资源管理器上设置或替换文件?

编译 C 程序后 Eclipse CDT 意外输出