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++程序