【问题标题】:Eclipse CDT: How to use GCC C++ compiler on C sources?Eclipse CDT:如何在 C 源代码上使用 GCC C++ 编译器?
【发布时间】: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(),但这不是鲍姆的重点。语法在一种语言中是合法的,但在另一种语言中是合法的。

标签: c++ linux eclipse visual-studio


【解决方案1】:

在项目选项中:

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

  2. 或者将工具设置为 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。它没有。祝你好运
猜你喜欢
  • 2011-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-09
  • 2011-01-21
  • 2015-12-01
  • 1970-01-01
  • 2012-02-17
相关资源
最近更新 更多