OpenDDS QosXml库编译

OpenDDS QosXml库编译

1 概述

在使用OpenDDS过程中,有时候需要对DDS中实体的qos进行配置,第一种办法是在代码中进行硬编码,第二种是使用xml文件进行配置。其实DDS源代码中已经提供了相关支持,甚至都有Qos的xml配置文件格式,只是缺少一个xml解析库,所有编译的时候没生成对应的库。下面就讲解一下生成QosXml文件的解析库。

2 环境介绍

 vs2015
 编译好的Perl、DDS、ACE_TAO,并配置好环境变量。如果不会编译请查看我相关的博客。
 cmake 3.13.2,并配置好环境变量。

3 xercesc配置

3.1 下载xercesc

地址:http://xerces.apache.org/xerces-c/download.cgi
在这里插入图片描述
选择第一个进行下载。解压到如下路径C:\SoftWare\xerces-c-3.2.2
在这里插入图片描述

3.2 编译xercesc

打开cmake-gui.exe。在C:\SoftWare\xerces-c-3.2.2下新建文件夹build。source code和buiil目录现在如下。点击cofigure选择对应的vs2015编译器,界面还有红色提示则再次点击cofigure。然后点击Generate生成解决方案。
在这里插入图片描述
打开C:\SoftWare\xerces-c-3.2.2\build下的xerces-c.sln解决方案,点击Library下的xercesc项目进行项目生成。过程中可能会出现找不到Xerces_autoconf_config.hpp和XercesVersion.hpp两个头文件,但可以在build中搜索到,我这里在C:\SoftWare\xerces-c-3.2.2\build\src\xercesc\util目录下。编译完成后C:\SoftWare\xerces-c-3.2.2\build\src\Debug目录下会生成xerces-c_3D.lib和xerces-c_3_2D.dll。这里将这两个文件拷贝到C:\SoftWare\OpenDDS\lib下避免后续环境变量问题。

4 编译ACE_XML_Utils库

这个库也是需要xerces库的支持,故编译ACE和TAO时没有生成。
 进入ACE_wrappers下的如下目录,我这里是C:\SoftWare\OpenDDS\ACE_wrappers\ace\XML_Utils。
 打开vs2015开发人员命令行提示,切到C:\SoftWare\OpenDDS\ACE_wrappers\ace\XML_Utils目录下。
运行命令perl C:\SoftWare\OpenDDS\ACE_wrappers\MPC\mwc.pl -type vc14
注意:C:\SoftWare\OpenDDS\ACE_wrappers\MPC\mwc.pl的位置和你电脑里的一致。
第一次会说因为没有xerces出错。
在这里插入图片描述
再次输入命令:perl C:\SoftWare\OpenDDS\ACE_wrappers\MPC\mwc.pl -type vc14 -features xerces=1
在这里插入图片描述
此时观察当前文件夹,已经生成XML_Utils.sln解决方案了。
在这里插入图片描述
打开XML_Utils.sln解决方案
配置xerces库。头文件包含目录中加入C:\SoftWare\xerces-c-3.2.2\src。(xerces的头文件目录)添加库xerces-c_3D.lib。
编译可生成ACE_XML_Utilsd.dll和ACE_XML_Utilsd.lib。在C:\SoftWare\OpenDDS\ACE_wrappers\lib目录下。

5 编译OpenDDS_QOS_XML_XSC_Handlerd库

步骤和4类似。
命令行切到C:\SoftWare\OpenDDS\dds\DCPS\QOS_XML_Handler下。
输入命令:perl C:\SoftWare\OpenDDS\ACE_wrappers\MPC\mwc.pl -type vc14 -features xerces=1 -features xsc=1
在这里插入图片描述
打开QOS_XML_Handler.sln解决方案,配置xerces头文件和库文件,编辑即可在C:\SoftWare\OpenDDS\lib生成OpenDDS_QOS_XML_XSC_Handlerd.lib和OpenDDS_QOS_XML_XSC_Handlerd.dll。

6 测试和使用

同理命令行切到C:\SoftWare\OpenDDS\tests\DCPS\QoS_XML\dump下,输入命令:C:\SoftWare\OpenDDS\ACE_wrappers\MPC\mwc.pl -type vc14 -features xerces=1。
生成dump.sln解决方案。打开方案运行一下就知道是否生成功了,至于如何使用也可参看这个例子。

猜你喜欢

转载自blog.csdn.net/a369189453/article/details/85255803