我正在定制通过cmake构建的qgis源代码。
它有一个包含许多子目录的源树(其中包含子目录)。
整个源代码树分为核心模块,具有GIS核心组件,gui负责gui,app,负责主应用程序(包含main.cpp)和其他模块。< / p>
问题是我遇到了需要访问不同模块中的静态类成员的要求。确切地说是Gui模块中QgisApp类的一些成员。
所以在一个gui模块的.cpp中正常包含qgisapp.h给了我未定义的对我要访问的mamber的引用。 后来我将.h和.cpp包含在位于Gui模块根目录下的CMakeLists.txt文件中,并再次运行cmake以使Makefile具有正确的包含.. 但实际上,如果undefined引用了很多,那实际上增加了数量(可能是因为我添加到CMakeLists.txt中的.h和.cpp本身包括在app模块自己的CMakeLists.txt中有引用的其他.h和.cpp)。 / p>
那么我怎么能在一些其他模块中使用某个模块类的成员呢?这个模块是用不同的CMakeLists.txt集合构建的,它们放在各自的根目录下?
这个问题与qgis没有特别的关系,但是可以遇到任何与qgis类似的源代码树。所以它基本上是一个与Cmake相关的问题..
希望我能够澄清我的问题。
帮助将不胜感激。
感谢。