上文中简要介绍了OpenDDS,它可以通过简单的方式在网络上交换数据。现在将讨论如何构建和安装它。
对于Windows(使用Visual Studio 2015)和Linux(Ubuntu 64位),我们将介绍版本OpenDDS 3.9源代码的安装。此处只介绍C ++部分。
OpenDDS 需要 TAO 来编译 IDL,以及与 DCPSInfoRepo 的交互。
如果使用 OpenDDS 的 “Configure” 脚本,则无需首先下载 Tao —— “configure”脚本将会自动下载。
GNU Make 用于在 Unix 和 Linux 系统上自动编译和链接 OpenDDS。
Perl 用于运行源代码中包含的自动化测试和示例,并生成 Makefiles 或 Visual Studio 项目文件。
在 Windows 上推荐使用 ActiveState Perl。 另外,配置脚本也需要使用 Perl。
最新的 OpenDDS 3.12 已在以下平台上进行测试:
最新版本的OpenDDS在以下版本的编译器上测试通过:
为了构建OpenDDS,必须在Ubuntu中安装一些软件包。用这个命令安装需要的软件包:
$ sudo apt-get install build-essential
还有其他应该下载的软件包以获取更多功能。
$ sudo apt-get install libxerces -c-dev qt4-dev-tools libboost-all-dev libglib2.0-dev
您可以直接从OpenDDS站点下载OpenDDS 。打开终端并在要下载的文件夹中,输入以下命令:
$ wget https://github.com/objectcomputing/OpenDDS/releases/download/DDS-3.9/OpenDDS-3.9.tar.gz
$ tar xvvf OpenDDS-3.9.tar.gz
解压缩之后,准备构建OpenDDS。输入文件夹并输入configure
命令:
$ cd OpenDDS-3.9
$ ./configure --prefix=/usr/local
如果想要编译以下可选组件,运行如下命令:
$ ./configure --prefix=/usr/local --boost --glib --rapidjson --qt
该命令将下载缺失的依赖关系(ACE 和 TAO),它将为编译做一些准备。当OpenDDS构建完成时,键入以下命令:
$ make
使用--prefix=/usr/local
可以将其设为 OpenDDS 的安装目录, 然后再编译
$ sudo make install
为了检查安装是否正常,我们可以检查 OpenDDS 是否按预期工作。它带有一系列可以从 perl 脚本运行的测试。为了运行测试,可以使用以下命令:
$ export DDS_ROOT=/path/to/OpenDDS
$ export ACE_ROOT=/path/to/OpenDDS/ACE_wrappers
$ export TAO_ROOT=/path/to/OpenDDS/ACE_wrappers
$ cd /path/to/OpenDDS/bin$ ./auto_run_tests.pl
运行测试 perl 脚本需要提前配置好环境变量。
可以在http://opendds.org/downloads.html下载OpenDDS Windows版本。或者也可以通过 powershell 下载,命令如下:
> Invoke-WebRequest https://github.com/objectcomputing/OpenDDS/releases/download/DDS-3.9/OpenDDS-3.9.zip -OutFile OpenDDS-3.9.zip
在 Windows 下编译需要安装 Perl,在继续之前先下载安装它。https://www.activestate.com/activeperl
在这种情况下,也可以使用Qt作为可选组件。
最新支持的主要版本是 Qt4,所以如果你想使用它下载并安装它为你的编译器。由于我使用的是 Visual Studio 2015,并且未提供预编译包,因此我在此链接下载源代码,然后由我自己构建。https://download.qt.io/official_releases/qt/4.8/4.8.7/
如果您没有预编译的软件包,请自行构建。或者根本不使用 Qt,毕竟它们是可选的…
跟Qt一样,Boost也是一个可选的组件,但考虑到它的重要性,建议在OpenDDS中以及其他项目中使用它。有关如何构建它的更多详细信息和说明,请参阅Boost主页。
使用Visual Studio进行构建。为了构建OpenDDS,需要提前配置好Visual Studio环境。
要做到这一点最简单的事情就是直接从Visual Studio命令打开一个shell。在Windows开始菜单中找到你的VisualStudio文件夹并打开你想要的命令提示符(即VS2015 x64 本地工具命令提示符)。
进入解压缩OpenDDS的文件夹,执行configure命令:
> configure
这将下载 ACE 和 TAO 并配置环境。
命令结束时,将会构建生成解决方案。
使用由配置创建的命令设置环境变量之后,可以直接从命令提示符启动Visual Studio:
> setenv.cmd
> devenv
此时,VisualStudio将开始运行并且生成解决方案 DDS_TAOv2_all。
编译结束时,一切都应该没问题。可以通过执行一些二进制文件来检查一切是否正常。打开控制台,设置以下命令:
> set DDS_ROOT=path\\to\\OpenDDS
> set ACE_ROOT=path\\to\\OpenDDS\\ACE_wrappers
> set TAO_ROOT=path\\to\\OpenDDS\\ACE_wrappers
> set PATH=path\\to\\OpenDDS\\lib;path\\to\\OpenDDS\\ACE_wrappers\\lib;%PATH%
> cd path\\to\\OpenDDS\\bin
> perl auto_run_tests.pl
执行完毕之后测试套件将开始工作。
本文我们分别在Windows和Ubuntu系统中配置了OpenDDS环境。下一节中将介绍如何使用OpenDDS。