本发明涉autocad二次开发,特别是涉及一种objectarx插件集成qt库的编译构建方法及编译构建器、计算机设备和存储介质。
背景技术:
1、autocad因其能够提供功能强大的二次开发工具目前已成为国际上广为流行的工程制图软件。
2、objectarx是autocad平台的第三代二次开发软件包,提供了一个以c++为基础的面向对象的开发环境及应用程序接口(api),开发人员可以利用该api调用、修改和扩展autocad功能。另外,开发者用c++语言编写的objectarx程序,必须使用与编译autocad相同版本的微软vc++编译器进行编译、链接,最后生成.arx后缀的objectarx插件。
3、qt是一种跨平台开源、面向对象的c++语言图形用户界面应用程序开发库,qt开发的c++程序代码可读性高,易于维护,开发效率高,可实现高效率工业软件开发。
4、mfc是vc++集成开发环境内置的一个c++语言基础类库,用c++语言面向对象技术封装了windows编程,每一个版本的vc++编译器对应有一个mfc类库。objectarx以动态链接库的形式运行能够在其中使用mfc资源,并且objectarx还提供了一组基于mfc的扩展类,使用这些扩展类可以开发出与autocad自身风格一致的图形用户界面。
5、然而,由于mfc代码冗余灵活性差进而导致学习周期长,图形用户界面开发工作量大且开发效率低,因此,目前已有使用开源解决方案qtwinmigrate来实现objectarx插件集成qt库在objectarx插件中运行qt。
6、但是,由于objectarx(mfc)和qt是两个独立的库,且拥有各自的编译系统,因此,如何能够提供一种将objectarx插件集成qt库的编译构建方法,成为目前亟待解决的问题之一。
技术实现思路
1、基于此,本发明提供一种objectarx插件集成qt库的编译构建方法,以更加便捷、高效地完成多版本编译构建objectarx插件。
2、一种objectarx插件集成qt库的编译构建方法,包括:
3、在objectarx插件下创建工程文件;
4、基于所述工程文件,对objectarx插件的编译构建进行配置;
5、基于编译环境进行编译构建,以生成objectarx插件。
6、可选的,所述在objectarx插件下创建工程文件包括:
7、将objectarx插件所集成的qt库的qmake.exe路径添加至windows操作系统的path环境变量;
8、在objectarx插件下的c++源代码目录,输入qmake-project命令以创建pro工程文件。
9、可选的,所述基于编译环境进行编译构建,以生成objectarx插件包括:
10、建立objectarx插件编译构建bat批处理脚本文件;
11、修改objectarx插件编译构建bat批处理脚本文件;
12、运行objectarx插件编译构建bat批处理脚本文件,以生成.arx插件。
13、可选的,所述修改objectarx插件编译构建bat批处理脚本文件包括:
14、将objectarx插件所集成的qt库的bin路径添加至windows操作系统的path环境变量;
15、将objectarx插件所集成的qt库的c++语言头文件所在的include路径添加至windows操作系统的include环境变量,将objectarx插件的c++语言头文件.h所在的路径添加至windows操作系统的include环境变量;
16、将objectarx插件所集成的qt库的c++语言链接库所在的lib路径添加至windows操作系统的lib环境变量,将objectarx插件的c++语言链接库.lib所在的路径添加至windows操作系统的lib环境变量;
17、设置windows操作系统的qmakespec环境变量为objectarx插件的编译环境值;
18、添加call命令调用objectarx插件所需的vc++编译器环境变量配置批处理脚本vcvarsall.bat;
19、添加qmake命令和nmake命令。
20、可选的,qmakespec环境变量值包括:win32-msvc、win32-msvc2002、win32-msvc2005、win32-msvc2008、win32-msvc2010、win32-msvc2012、win32-msvc2015、win32-msvc2017、win32-msvc2019。
21、可选的,所述基于所述工程文件,对objectarx插件的编译构建进行配置包括:
22、将template=app配置修改为template=lib;
23、依次添加配置:config=dll release;target_ext=.arx;qmake_cxxflags+=-ehsc/wd"4100";
24、针对不同版本的autocad的objectarx插件相应的添加配置:defines=win32_windows ndebug_afxext_acrxapp_windll_afxdll_unicode unicode qt_qtwinmigrate_import项目名称_module;或者:
25、defines=_win64_windows ndebug_afxext_acrxapp_windll_afxdll_unicodeunicodeqt_qtwinmigrate_import项目名称_module;
26、将qtwinmigrate.pri文件引入编译配置;
27、根据objectarx插件中使用的qt子模块,添加qt+=子模块名。
28、可选的,所述编译构建方法还包括:若源代码目录有.rc资源文件,则添加rc_file+=资源名.rc。
29、本发明还提供一种objectarx插件集成qt库的编译构建器,包括:
30、创建单元:用于在objectarx插件下创建工程文件;
31、配置单元,用于基于所述工程文件,对objectarx插件的编译构建进行配置;
32、构建单元,用于基于编译环境进行编译构建,以生成objectarx插件。
33、本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的编译构建方法的步骤。
34、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的编译构建方法的步骤。
35、本发明的objectarx插件集成qt库的编译构建方法,首先在在objectarx插件下创建工程文件,然后基于所述工程文件,对objectarx插件的编译构建进行配置,最后,基于编译环境进行编译构建,以生成objectarx插件。由于通过创建工程文件,并基于工程文件对objectarx插件的编译构建进行配置,因此,一方面可以较为便捷的实现objectarx插件集成qt库的多版本批量编译构建,另一方面也在很大程度上提高了实现objectarx插件集成qt库的多版本批量编译构建的效率,且采用本发明的编译构建方法,可以一次性的生成多个版本的autocad的objectarx插件。另外,本发明提供的编译构建方法还可以部署在编译服务器上,以实现objectarx插件的自动批量构建。此外,本发明的编译构建方法,可以显著提高技术人员的编程效率。
1.一种objectarx插件集成qt库的编译构建方法,其特征在于,包括:
2.根据权利要求1所述的编译构建方法,其特征在于,所述在objectarx插件下创建工程文件,包括:
3.根据权利要求1所述的编译构建方法,其特征在于,所述基于编译环境进行编译构建,以生成objectarx插件,包括:
4.根据权利要求3所述的编译构建方法,其特征在于,所述修改objectarx插件编译构建bat批处理脚本文件,包括:
5.根据权利要求4所述的编译构建方法,其特征在于,qmakespec环境变量值包括:win32-msvc、win32-msvc2002、win32-msvc2005、win32-msvc2008、win32-msvc2010、win32-msvc2012、win32-msvc2015、win32-msvc2017、win32-msvc2019。
6.根据权利要求1~4任一项所述的编译构建方法,其特征在于,所述基于所述工程文件,对objectarx插件的编译构建进行配置,包括:
7.根据权利要求6所述的编译构建方法,其特征在于,还包括:若源代码目录有.rc资源文件,则添加rc_file+=资源名.rc。
8.一种objectarx插件集成qt库的编译构建器,其特征在于,包括:
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,