2013-05-17 155 views
0

我已经下载了一个工具包(即帝国学院的IRTK),我已经使用CMake编译并安装了它。包含在.cc文件中的cpp对象的超类不是头文件

作为安装的一部分,它复制了所有相关的头文件到/ usr /本地/包括

我想用类从这个工具包,所以我包括在/ usr /本地相关的头文件/包括例如irtkFileVTKToImage.h,但是该类继承自超类irtkFileToImage,并且超类的包含发生在irtkFileVTKToImage.cc中,而不是发生在irtkFileVTKToImage.h中。

这意味着,当我尝试包括类我得到一个编译错误

error: unknown class name 'irtkFileToImage'

我应该怎么做才能够使用这些头文件。我没有编写这个工具包,所以通过添加所有包含到头文件可能需要很长时间,有没有更简单的方法来做到这一点?

------ UPDATE ------

由于各地我已经包含了工具包源在我的项目全部,现在我的代码编译罚款工作。不理想,但至少它工作

+0

你能粘贴代码段吗?你是否喜欢.cc? – Maresh

+0

是的,我可以,但它是一个非常大的工具包,需要很长时间才能通过并粘贴每个课程的内容。此外,我不得不阅读这些课程,试图找出每个包含哪些标题。我想知道是否有一些自动化的方式来做这件事,或者你可以在makefile或cmake中为我做这件事? –

+0

编译错误发生在哪里?在链接或之前?你可以将整个编译器输出粘贴到pastebin或类似的东西上。 – Maresh

回答

0

我的猜测是,你应该编译和使用工具包作为一个库,这样你只需要包括你想在你自己的代码中使用的最终类的头。这会比试图使用它更容易,因为知道有很多依赖关系。

+0

这就是我一直在努力去做的。问题是,一旦它安装了头文件(放置在全局包含目录中)都缺少它们的依赖关系,出于某种原因,依赖项被包含在.cc文件中。 相反,我已经在我的项目中包含了整个工具包源代码,现在我可以运行我的代码,但并不完全理想,但至少现在可以工作 –