SuperMap iObjects C++结合Qt在vs2012上的开发环境搭建

5 篇文章 1 订阅
4 篇文章 0 订阅

SuperMap iObjects C++结合Qt在vs2012上的开发环境搭建

一、准备

本次环境搭建使用了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即可开始环境的搭建。

二、VS2012下的iObjects C++ & Qt 环境搭建

  • 在VS2012中新建一个Qt工程新建一个Qt工程
  • 由于我的Qt插件已设置默认Qt版本为4.8.6,所有Qt模块配置功能不可用,直接下一步即可,如果不想更改默认的初始Qt工程中的文件名,可以直接点Finish。
    NewQtProject1
    NewQtProject2
    NewQtProject3

  • 由于VS2012下的Qt插件(1.2以后的版本)不支持Qt4版本,所以进入工程需要做一些更改:

1.首先确认项目所使用的Qt版本为自己编译的4.8.6,如果装有5.0版本的qt,请不要将4.8.6设置为默认值,否则可能会有灵异的问题。

VS设置qt版本
确认VSQt版本

2.配置头文件目录

VS配置头文件搜索目录

2.1 删除Qt5引用的QWidgets头文件目录

VS删除QtWidgets头文件目录.png]

2.2 添加iObjects组件头文件目录

这里需要添加两个目录:iObjects组件的include目录以及include目录下的private目录,并确认有使用的qt库头文件目录QtCore和QtGui,在工程的qt属性中修改qt版本,系统会自动添加” (QTDIR)" (QTDIR)是否有效,如果无效尝试切换qt版本,再换回来,如果还是无效,可以尝试自己添加宏或者使用绝对路径在添加头文件引用。
这里写图片描述

3.配置预处理宏

3.1删除Qt5的QWIDGET宏

VS设置预处理宏定义_删除qt5

3.2添加iObjects组件宏:_UGUNICODE

VS设置预处理宏定义_添加UGUNICODE

4.添加”/bigobj”编译命令

使用SuperMapC++库编译Debug库时,会使obj文件大小超过vs规定大小,所以需要在编译命令中添加/bigobj
VS添加"/bigobj"编译命令

5.确保将WChar_t视为内置类型

确保将WChar_t视为内置类型

6设置对应平台下的附加库,

6.1设置附加库目录,如x64平台下debug则添加附加库目录libd_x64

设置对应编译平台的附加库

6.2设置使用的附加库

如调试情况下(库名带d,release则是不带d的库):先删除原先所有的附加库设定,然后添加:

QtCored4.lib
QtGuid4.lib
SuStreamd.lib
SuToolkitd.lib
SuElementd.lib
SuAlgorithmd.lib
SuProjectiond.lib
SuGeoOperationd.lib
SuOGDCd.lib
SuBased.lib
SuWorkspaced.lib
SuSpatialIndexd.lib
SuEngined.lib
SuGraphicsd.lib
SuSymbold.lib
SuMapd.lib
SuDrawingd.lib
SuFileParserd.lib
SuRepresentationd.lib
SuChartBased.lib
SuChartToolkitd.lib
SuBase3Dd.lib
SuTopoBased.lib
SuEngineOGDCd.lib
SuNetToolkitd.lib
SuTopoBuilderd.lib
SuSpatialQueryd.lib
SuEngineImagePlugind.lib
SuGeneralizationd.lib
SuRenderd.lib
SuSceneEditord.lib
SuMapEditord.lib
SuScened.lib
SuGraphics3Dd.lib
SuParticleSystemd.lib
SuGridModelingd.lib
SuOverlayd.lib
SuDataCheckd.lib
SuGeometryd.lib
SuGeometry3Dd.lib
SuCompactFiled.lib

6设置调试环境

  • 1.main.cpp中修改引用头文件
#include <QtWidgets/QApplication> 为#include <QApplication>
  • 2.helloiobjects.h中修改引用头文件
#include <QtWidgets/QMainWindow> 为 #include <QMainWindow>

7.编写代码

按照给出的实例工程编写自己所需的代码即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值