c ++:Eclipse无法解析本地类的导入

时间:2015-12-03 01:01:32

标签: c++ eclipse

如果这是一个重复的问题,请道歉。我彻底搜查了,找不到答案。

我在同一目录中有2个c ++ .h文件。其中一个类继承自另一个类,但Eclipse无法解析基类的符号。整个项目都发生类似的错误;但是基类似乎可以从其他目录中解析,而派生类无法解析位于同一目录中的基类。为了澄清,我有以下目录结构:

src    
    dir
        classA.h
        classB.h
    otherDir
        classC.h
        classD.h
classA.h看起来像这样:

#ifndef OTHERDIR_A_H
#define OTHERDIR_A_H
class A {
    // A definition
};
#endif

classB.h看起来像这样:

#ifndef OTHERDIR_B_H
#define OTHERDIR_B_H
class B : public A { // Symbol 'A' could not be resolved
    // B definition
};
#endif

classC.h看起来像这样:

#include "D.h"
#include <sstream>
#include <string>
#include <set>
using std::cout; // resolves correctly
using dir::A; // resolves correctly
using dir::B; // Symbol 'B' could not be resolved
class C : public D { /* C definition */ }; 

我认为我有Eclipse配置问题,因为当我在命令行中运行Make时,它会编译。这是Makefile:

SRC=../../src
CPPFLAGS = -I$(SRC)
CXX = g++
CXXFLAGS = \
    -g -std=c++11 \
    -Wall \
    -Wno-unused-function

client1: always
        $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o client1 $(SRC)/otherDir/client1.cxx

clean:
        rm -f client1 *.o *~

always:

在Properties-&gt; C / C ++ Build - &gt;工具链编辑器,我有“当前工具链:没有ToolChain”。但是,下拉菜单中唯一的选项是“No ToolChain”,因此我无法选择其他工具链。我还没有找到如何在OSX上安装或添加工具链到Eclipse。我相信我安装了XCode工具链。

有关如何解决本地导入的任何建议?谢谢!

1 个答案:

答案 0 :(得分:0)

一时兴起,我在其他部分内容未解决的情况下添加了otherDir::。 (例如,将public A更改为public otherDir::A)。这解决了大多数错误,并使eclipse可用,尽管还有其他一些未解决的方法。