Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake';s未定义的引用链接错误_Cmake_Qgis - Fatal编程技术网

Cmake';s未定义的引用链接错误

Cmake';s未定义的引用链接错误,cmake,qgis,Cmake,Qgis,我正在定制通过cmake构建的qgis源代码 它有一个包含许多子目录的源目录树(其中也包含子目录) 整个源代码树被划分为几个模块,如核心模块,其中包含GIS核心组件、负责gui的gui、负责主应用程序(包含main.cpp)的应用程序以及其他模块 问题是我被一个需要访问不同模块中的静态类成员的需求所困扰。确切地说,是Gui模块中QgisApp类的某个成员 因此,在gui模块的一个.cpp中包含qgisapp.h通常会给我提供对我想要访问的mamber的未定义引用。。 后来,我将.h和.cpp包含

我正在定制通过cmake构建的qgis源代码

它有一个包含许多子目录的源目录树(其中也包含子目录)

整个源代码树被划分为几个模块,如核心模块,其中包含GIS核心组件、负责gui的gui、负责主应用程序(包含main.cpp)的应用程序以及其他模块

问题是我被一个需要访问不同模块中的静态类成员的需求所困扰。确切地说,是Gui模块中QgisApp类的某个成员

因此,在gui模块的一个.cpp中包含qgisapp.h通常会给我提供对我想要访问的mamber的未定义引用。。 后来,我将.h和.cpp包含在驻留在Gui模块根目录中的CMakeLists.txt文件中,并再次运行cmake,以便使makefile具有适当的include。。 但是,如果未定义的引用过多,那么这实际上会增加引用的数量(可能是因为我添加到CMakeLists.txt中的.h和.cpp本身包括其他在应用模块自己的CMakeLists.txt中有引用的.h和.cpp)

那么,我如何在其他模块中使用某个模块类的成员,该模块是使用不同的CMakeLists.txt集构建的,这些CMakeLists.txt集放在其各自的根目录中

这个问题与qgis没有特别的关系,但是可以遇到任何与qgis类似的源代码树。所以基本上这是一个与Cmake相关的问题

希望我能解决我的问题

我们将不胜感激

谢谢。

应该做你想做的事。如果这不起作用,请尝试发布一些示例CMake代码?

应该满足您的要求。如果这不起作用,请尝试发布一些示例CMake代码