1

我们正在接管一个遗留项目,但我无法编译它,来自 taglib 工具包的 .TCC 文件正在引发各种异常。我正在使用 C++98 和 libstdc,因为它们解决了他们给我们的其他项目的一系列问题。我已将文件设置为 xcode 中的 C++ 源文件,它在属性中以纯文本形式存在,因此我对其进行了更改。我猜文件类型以某种方式抛弃了 Xcode,或者我需要进行一些更改但不知道是什么,有什么想法吗?

一些错误包括:

/src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:78:9:删除调用的“const TagLib::FileRef::FileTypeResolver”是抽象的但具有非虚拟析构函数/src/ofxSoundTagReader/libs/taglib/ toolkit/tlist.tcc:41:32:预期的类名/src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:51:27:非模板类“列表”的显式特化/src/ofxSoundTagReader/libs/taglib /toolkit/tlist.tcc:51:36:“ListPrivate”的定义或重新声明无法命名全局范围 /src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:50:1:模板特化中的无关模板参数列表或离线模板定义/src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:51:36:变量“ListPrivate”声明为模板

4

2 回答 2

1

“tlist.tcc”包含“tlist.h”中定义的模板类的实现,你应该单独编译它。在“tlist.h”的末尾是d,它只包含类定义
#include

于 2013-11-05T16:17:29.667 回答
0

我刚刚偶然发现了这个问题,因为我自己也遇到了这个错误。

问题是,即使将 TCC 文件设置为“纯文本”模式 - 也无济于事。Xcode 出于某种原因尝试单独编译它们。

所以解决方案是从“目标”中取消选中这些文件。所以它不会尝试将它们编译为源代码。

不用担心,头文件确实引用了这些,它们将被编译为头文件,在它们相互完成时不会产生错误......

于 2014-07-11T08:06:37.030 回答