如果这是一个重复的问题,请道歉。我彻底搜查了,找不到答案。
我在同一目录中有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工具链。
有关如何解决本地导入的任何建议?谢谢!
答案 0 :(得分:0)
一时兴起,我在其他部分内容未解决的情况下添加了otherDir::
。 (例如,将public A
更改为public otherDir::A
)。这解决了大多数错误,并使eclipse可用,尽管还有其他一些未解决的方法。