SuperMap iObjects C++结合Qt在QtCreator上的开发环境搭建
一、准备工作
本次环境搭建使用了vs2012编译的iObjects C++ x64组件,要结合qt进行开发的话需要使用vs2012编译的Qt库,为保持所用库的一致性,我们使用了qt4.8.6版本,而该版本没有官方发行版的vs2012库,需要自己编译。
编译过程参见《Qt4.8.6在VS2012下的编译》
其中应注意将Qt源码目录下:
\mkspecs\win32-msvc2012\qmake.conf
文件中的:
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
更改为:
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
即设置:将wchar_t作为内置类型来编译Qt库,因为iObjects库是将wchar_t设为内置类型的,如果两个库不统一,则无法正确编译程序。
编译好Qt即可开始环境的搭建。
二、Qt Creator下的iObjects C++ & Qt 环境搭建
在Qt Creator中新建一个Qt工程
新建好一个工程后双击其工程文件(*.pro)进入编辑模式,在最后添加如下代码
#头文件目录
INCLUDEPATH += "D:/SuperMapLib/SuperMapCpp/include" \
#附加库(目录以L标记,附加库名以l标记)
LIBS += -L"D:/SuperMapLib/SuperMapCpp/lib/libd_x64" \
-lSuStreamd \
-lSuToolkitd \
-lSuElementd \
-lSuAlgorithmd \
-lSuProjectiond \
-lSuGeoOperationd \
-lSuOGDCd \
-lSuBased \
-lSuWorkspaced \
-lSuSpatialIndexd \
-lSuEngined \
-lSuGraphicsd \
-lSuMapd \
-lSuDrawingd \
-lSuFileParserd \
-lSuRepresentationd \
-lSuChartBased \
-lSuChartToolkitd \
-lSuBase3Dd \
-lSuTopoBased \
-lSuEngineOGDCd \
-lSuNetToolkitd \
-lSuTopoBuilderd \
-lSuSpatialQueryd \
-lSuEngineImagePlugind \
-lSuGeneralizationd \
-lSuRenderd \
-lSuSceneEditord \
-lSuMapEditord \
-lSuScened \
-lSuGraphics3Dd \
-lSuParticleSystemd \
-lSuGridModelingd \
-lSuOverlayd \
-lSuDataCheckd \
-lSuGeometryd \
-lSuGeometryCADd \
-lSuGeometry3Dd \ # -lsiconvd \
-lSuCompactFiled \
-lSuLayer3DTreed \
-lSuFMELicensed
#iObjects 组件的预处理宏
DEFINES += _UGUNICODE
#以启用bigobj
QMAKE_CXXFLAGS += /bigobj
其中:
D:/SuperMapLib/SuperMapCpp/include
为你的iObjects组件的头文件所在目录
D:/SuperMapLib/SuperMapCpp/lib/libd_x64
为你所引用的iObjects组件库目录(根据64、32、debug、release不同而目录不同)
- 添加运行环境
如果你所使用组件的bin目录(dll所在目录)未加入系统环境变量的path中,点击“项目”切换到运行选项卡,在最下放的运行环境(Run Environment)中找到“path”项目,点击“编辑”,在会后加入你的bin目录即可。
至此,你就可以在你的Qt Creator下进行iObjects的开发了.