"隐含的析构函数"在c ++中

时间:2014-04-22 09:56:40

标签: c++ linker destructor

我有一些头文件Coordinate.h,一些Coordinate.inl和一些build_geometry.cpp使用坐标类型。

Coordinate.h有两个版本,旧版本~Coordinate();已定义,较新版本没有析构函数定义行。同样,较新版本中的Coordinate.inl未提及任何析构函数定义,旧版本包含:

    INLINE
    Coordinate::~Coordinate()
    {
    }

现在我必须针对Coordinate.h / Coordinate.inl编译build_geometry.cpp,它只适用于较旧版本的Coordinate.h / Coordinate.inl。否则它将以错误结束:

    build_geometry.o: build_geometry.cpp:203: more undefined references to `geos::geom::Coordinate::~Coordinate()' follow
    collect2: ld returned 1 exit status

显然是在使用Coordinate类型的周期/方法的末尾引起的。

所以问题是如何在没有这些空索引器声明的情况下进行编译和链接?

1 个答案:

答案 0 :(得分:0)

修正:/usr/local/include/...中存在一些过时的内容,这些内容位于/usr/include/的正确版本之前。