如何强制Eclipse使用g ++而不是gcc?

时间:2014-06-17 06:08:50

标签: c++ eclipse gcc compiler-construction g++

我已经问过如何从How to call a C++ constructor from a C-File中的C文件调用C ++构造函数。现在,当我成功应用这些建议的方法时,我收到错误

  

致命错误:字符串:没有此类文件或目录编译终止

此错误消息指向.cpp文件标题中的行#include <string>

我已经发现c ++ / g ++使用<string>,c / gcc使用<string.h>。问题变得清晰了,当我检查控制台输出时,我可以看到,带有错误的(.cpp)文件被gcc称为 ,实际上需要<string.h>但是这不是我的意图 - 我需要用g ++编译它。

现在我的问题是:我可以强制Eclipse使用特定的编译器吗?在这里,例如g ++(我听说它也能够使用C代码。) - 或者更好的是,有没有办法为工作区中的每个目录选择编译器?

感谢您的建议

2 个答案:

答案 0 :(得分:1)

回答尊重能够为每个子文件夹指定编译器的愿望

您搜索的内容可能是 makefile project。这允许您指定工具链,例如预处理器,编译器和链接器。 g ++是这样一个工具链的一个例子,就像clang ++那样。

你可以在eclipse中生成这样的项目,手工编写makefile,或者使用一些构建环境,例如CMake,我建议使用它来获得更好的可移植代码。

如果您愿意,两种解决方案都允许您为项目的每个目录指定编译器和编译标志。

Writing a makefile for your existing C/C++ project可以通过完成以下步骤来实现:

  1. 在源文件所在的文件夹中,右键单击并创建一个新文件。 New > File
  2. 将其命名为makefile,然后点击Finish
  3. 新的makefile应该在编辑器中弹出,可以填写如下:

    makefile:
    all: executable_name
    
    clean:
        -rm main.o executable_name[.exe on windows] executable_name
    
    executable_name: main.o
        g++ -g -o executable_name main.o
    
    main.o: main.cpp
        g++ -c -g main.cpp
    

答案 1 :(得分:0)

更改项目的设置可以强制使用g ++编译eclipse: Project Settings