首页 文章

Eclipse CDT包含路径,“工具链”,找不到字符串,cout等

提问于
浏览
1

我正在尝试使用CDT编辑C文件 . 但是,它拒绝看到字符串和向量等std类 .

(至少现在我将继续用eclipse之外的make构建 . 代码编译得很好 . 但是如果没有字符串等的定义,几乎所有内容都在编辑器中显示为错误 . )

我正在使用Luna . CDT使用“帮助”>“安装新软件”添加到面向Java的eclipse中 .

文档只是说“安装工具链和发生的事情". But having spent several hours reading up on this, I think the phrase "工具链”根据句子有几种不同的含义 . 这些包括

  • 编译器和链接器本身,例如minggw

  • 额外的东西(插件?)添加到Eclipse本身,以便它可以使用这些编译器 .

  • Eclipse本身的配置

我的make文件使用

D:\cygwin64\lib\gcc\x86_64-w64-mingw32\4.8.3\include

但有时CDT似乎指向

D:\mingw64\include\c++\4.5.4

哪个好,因为它会有相同的.h文件 .

我试过摆弄PATH(到/ bin),加上项目属性>>环境MINGW_HOME . “工具链编辑器”提到MingGW并说GCC C,但我不知道它的真正含义是什么,易于使用的界面没有显示路径 .

我也尝试将D:\ cygwin64 \ lib \ gcc \ x86_64-w64-mingw32 \ 4.8.3 \ include添加到路径和符号>包含,但这没有帮助 .

还有“库和库路径” . 我不知道有什么区别(两者都想要路径),但我猜这是用于链接,而不是编译 . 我也猜测在编辑过程中对C的IDE解析是由CDT本身完成,并不依赖于外部编译器 .

第二个问题是CDT如何确定哪些头文件是相关的?通常在C中是不可判定的,在我的情况下,我的头文件依赖于从包含.cpp文件加载的其他头文件 . 我猜它只是忽略#include指令并加载它遇到的每个头文件,希望没有冲突 .

2 回答

  • 0

    我花了太多时间试图正确修复它并且没有帖子,我的黑客如下 .

    #ifdef ECLIPSE
    // Dummy declarations to help with misconfigured Eclispse
      class string{};
      template <typename T>
      class vector{
      public:
          unsigned size();
          void push_back(T t);
          T at(unsigned idx);
      };
    #endif
    

    是的,只是让Eclipse认为类是正常的 . 我不会称之为答案 .

    奇怪的是,字符串的类def似乎足以说服eclipse转换为char *是好的 .

    (我使用use访问这些类,所以没有std::)

  • 0

    如果CDT无法解析包括 <string><vector> 在内的标准库,则表明它无法找到您的编译器 .

    打开命令提示符并键入 g++ . 它被发现了吗?如果不是,则表示包含编译器的目录不在 PATH 环境变量中 . 将此目录(可能类似于 D:\cygwin64\bin )添加到 PATH (如何执行此操作取决于您的Windows版本,但它类似于 Computer | Properties | Advanced system settings | Environment variables ),然后重新启动Eclipse并重试 .

相关问题