【发布时间】:2010-10-19 12:35:49
【问题描述】:
我正在自定义通过 cmake 构建的 qgis 源代码。
它有一个包含许多子目录的源代码树(其中也有子目录)。
整个源码树分为几个模块,比如core,有GIS核心组件,gui负责gui,app负责主应用程序(包含main.cpp)和其他模块..
问题是我遇到了需要访问不同模块中的静态类成员的要求。准确地说是 Gui 模块中 QgisApp 类的一些成员。
因此,在 gui 模块的 .cpp 之一中正常包含 qgisapp.h 给了我对我想要访问的 mamber 的未定义引用。 后来我将 .h 和 .cpp 包含在位于 Gui 模块根目录中的 CMakeLists.txt 文件中,然后再次运行 cmake,以便 Makefile 具有正确的包含.. 但是如果未定义的引用很多,这实际上会增加数量(可能是因为我添加到 CMakeLists.txt 本身的 .h 和 .cpp 包括在应用程序模块自己的 CMakeLists.txt 中有引用的其他 .h 和 .cpp)。
那么我如何在其他模块中使用某个模块的某个类的成员,这些模块是用放置在其各自根目录中的不同 CMakeLists.txt 集构建的??
这个问题与 qgis 没有特别的关系,但可以遇到与 qgis 类似的任何源代码树。所以它基本上是一个与 Cmake 相关的问题。
希望我能解决我的问题。
我们将不胜感激。
谢谢。
【问题讨论】: