QGis二次开发引用头文件后遇到无法解析的外部符号

        在我们写程序时有时会遇到无法解析的外部符号 ,常见的情况解决方法网上都找到。在这要解决的是QGis二次开发引用头文件后遇到无法解析的外部符号,这个问题的解决花费了好大的精力,也走了不少弯路,庆幸的是最后得以解决了,当然少不了网友的帮助。

        我要写的程序是进行影像的栅格计算,在抠源码时把源码写入自己的程序后就出现问题了,我引入的头文件是

#include <qgsrastercalculator.h>,引入后运行是没有问题的,但在创建了一个类QgsRasterCalculatorEntry entry后就出现如下:

QGis二次开发引用头文件后遇到无法解析的外部符号

我写的是栅格计算,类似的情况是一样的解决方法,可以借此参考。

解决方案:

1.首先要找到栅格计算的测试源码,我的源码位置如下:

QGis二次开发引用头文件后遇到无法解析的外部符号

 

2.由文件夹的名可以看出栅格计算是分析功能中的,把这个文件夹名称复制下来,我的是analysis

3.创建一个库的名称,qgis_analysis.lib,这里的analysis是第二步中复制的文件夹名称,下一步如下图:

QGis二次开发引用头文件后遇到无法解析的外部符号

4.点击确定后,再运行程序就会没有错误了,成功解决。

总结:

出现这种情况就是我们的库配置出现了问题,程序找不到相应的库,根据自己的错误来判断所要的库是哪一种,按照上面的步骤加进来就没有问题了。

注意,如果还有下面问题,无法打开源文件“qgisogrutils.h”,可以到源码中找到这个头文件,然后复制到qgis所对应的头文件里就行了。

QGis二次开发引用头文件后遇到无法解析的外部符号