我们正在接管一个遗留项目而我无法进行编译,来自taglib工具包的.TCC文件会抛出各种异常。我正在使用C ++ 98和libstdc,因为它解决了他们给我们的其他项目的一系列问题。我已经将文件设置为xcode中的C ++源文件,它在属性中将其作为纯文本,因此我对其进行了更改。我猜测文件类型是以某种方式抛弃Xcode或者我需要进行一些更改但不知道什么,有什么想法?
一些错误包括:
/src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:78:9:删除呼吁“常量的TagLib :: FileRef :: FileTypeResolver”是抽象但具有非虚析 /src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:41:32:预期的班级名称 /src/ofxSoundTagReader/libs/taglib/toolkit/tlist.tcc:51:27:非模板类'List'的显式特化 /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'声明为模板
答案 0 :(得分:1)
“tlist.tcc”包含“tlist.h”中定义的模板类的实现,并且不应该单独编译它。
在“tlist.h”末尾是#include
d,它只包含类定义。
答案 1 :(得分:0)
我偶然发现了这个问题,因为我自己得到了这个错误。
问题是,即使将TCC文件设置为“纯文本”模式 - 也无济于事。 Xcode出于某种原因试图单独编译它们。
所以解决方案是从“目标”取消选中这些文件。所以它不会尝试将它们编译为源。
不要担心,头文件会引用它们,它们将被编译为标题,在它们相互完成时不会产生错误......