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

c++: Eclipse cannot resolve imports from local classes

本文关键字:导入 Eclipse c++      更新时间:2023-10-16

如果这是一个重复的问题,我们深表歉意。我确实仔细搜索了一下,但没有找到答案。

我在同一目录中有两个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:

在属性->C/C++构建->工具链编辑器下,我有"当前工具链:无工具链"。但是,下拉菜单中唯一的选项是"无工具链",因此我无法选择其他工具链。我一直无法找到如何在OSX上安装或添加工具链到Eclipse。我相信我已经安装了XCode工具链。

关于如何解决本地进口问题,有什么建议吗?谢谢

我突发奇想,在一些otherDir的内容没有得到解决的情况下,添加了otherDir::。(例如,将public A改变为public otherDir::A)。这已经修复了大多数错误,并使eclipse可以使用,尽管还有其他一些未解决的方法。