2、添加库头引用:OSGEO4W/include,QGIS/include;
3、添加宏指令:
CORE_EXPORT=__declspec(dllimport)
GUI_EXPORT=__declspec(dllimport)
PYTHON_EXPORT=__declspec(dllimport)
ANALYSIS_EXPORT=__declspec(dllimport)
APP_EXPORT=__declspec(dllimport)
CUSTOMWIDGETS_EXPORT=__declspec(dllimport)
4、添加库lib目录和lib文件:
OSGEO4W/lib,QGIS/lib
这里要特别注意,在vs下,会默认添加debug版的qt lib文件 (有d后缀),如果发现,一定要替换为release(无d后缀)版的。
qgis_core.lib
qgis_gui.lib
qgis_analysis.lib
qtcore.lib
qtgui.lib
qtxml.lib
qtmain.lib
5、C/C++->代码生成->运行库 选择多线程dll/MD(解决报错:error LNK2038 RuntimeLibrary)
多线程调试Dll (/MDd) 对应的是MD_DynamicDebug
多线程Dll (/MD) 对应的是MD_DynamicRelease
多线程(/MT) 对应的是MD_StaticRelease
多线程(/MTd)对应的是MD_StaticDebug
6、系统环境变量添加OSGEO4W/bin、QGIS/bin、QT5/bin路径
7、编译生成完exe,运行前需通过Qt5的windeployqt.exe工具自动拷贝动态链接库文件,该工具QT安装目录下自带
用vs自带开发人员命令行工具执行 D:\OSGeo4W64\apps\Qt5\bin\windeployqt.exe C:\Users\zhoufy300\source\repos\QgsHelloWorld\x64\Debug\QgsHelloWorld.exe