【问题标题】:Eclipse CDT Include paths, "Tool Chains", cannot find string, cout etcEclipse CDT 包括路径、“工具链”、找不到字符串、cout 等
【发布时间】:2016-03-25 01:46:11
【问题描述】:

我正在尝试使用 CDT 来编辑 C++ 文件。但是,它拒绝看到像 string 和 vector 这样的 std 类。

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

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

文档只是说“安装工具链和发生的事情”。但是花了几个小时阅读了这个,我认为“工具链”这个短语有几个不同的含义,具体取决于句子。其中包括

  • 编译器和链接器本身,例如明格
  • 额外的东西(插件?)添加到 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 添加到 Paths & Symbols > Include,但这没有帮助。

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

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

【问题讨论】:

    标签: eclipse-cdt


    【解决方案1】:

    我的 hack 如下,在花了太多时间试图正确修复它并且这里没有帖子之后。

    #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 * 是可以的。

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

    【讨论】:

      【解决方案2】:

      如果 CDT 无法解析标准库包括 &lt;string&gt;&lt;vector&gt;,则表明它无法找到您的编译器。

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

      【讨论】:

        猜你喜欢
        • 2012-07-07
        • 1970-01-01
        • 2016-01-06
        • 1970-01-01
        • 1970-01-01
        • 2012-03-05
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        相关资源
        最近更新 更多