logo资料库

OpenDDS环境搭建.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
OpenDDS 编译 参考了一些 OpenDDS 编译的教程,虽然走过一些弯路,还好编译成功了,下面介绍 在 Windows 环境下编译 OpenDDs。 材料准备: 1、Microsoft visual Stidio 2010 visual Stidio 2010 的安装在这里就不介绍了,默认已经安装了。 2、Perl OpenDDS 是一种跨平台的开源软件,所以考虑到不同用户的平台和开发环境的需要, 使用了跨平台语言 Perl 作为脚本语言。下载地址: http://www.activestate.com/activeperl/downloads。 3、ACE 以及 TAO 源代码 ACE_TAO 下载地址:http://download.dre.vanderbilt.edu/ 4、OpenDDS 源代码 OpenDDS 下载地址:http://opendds.org/ 安装步骤: 1、 Perl 安装 我这里安装的是 Active Perl,打开下载地址,选择 Windows 的一个版本,安装过程比 较傻瓜,默认下一步即可。 2、 ACE_TAO 编译 a. ACE_TAO 下载 打开下载地址,我们可以看到有两种版本,Full 版和 Sources only 版,其中 Full 版里有生成好的工程文件,而 Sources only 版需要自己手动生成,这里推荐 Sources only 版,因为刚开始我用的是 Full 版,编译报了一个我解决不了的错误,浪费了挺多时 间的。Sources only 版下载好之后我解压到了 E 盘(E:\OpenDDs\ACE_wrappers)。
b. 设置相关环境变量 右键计算机->属性->高级系统设置->环境变量 添加系统变量 添加变量名 ACE_ROOT,值为解压路径:E:\OpenDDS\ACE_wrappers 添加变量名 TAO_ROOT,值为解压路径:E:\OpenDDS\ACE_wrappers\TAO 在 Path 后添加%ACE_ROOT%\lib; %ACE_ROOT%\bin; 如图所示:
c. 设置 config.h 在%ACE_ROOT%/ace 下新建一个空的配置文件 config.h,内容为 #include “ace/config-win32.h”。 以说明是要在 win32 平台下进行编译 注: 【(1)~(7)为备注,只加上第 1 条即可,我是加了 1 和 2】 (1) #include "config-win32.h"亦可 (2) 最好在#include 之前加上#define ACE_HAS_STANDARD_CPP_LIBRARY 1 以使用 MSVC 的 STL 库. (3) 如果是 98/ME,则在 ACE_ROOT/ace/config.h 的最前面加上 #define ACE_HAS_WINNT4 0 来关掉一些 NT/2000 中特有的代码。 (4) 如果你想用 MSVC 的 STL 库 (如 iostream, cstdio 等), 则在 config.h 文件 中的#include 语句前添加下面的行: #define ACE_HAS_STANDARD_CPP_LIBRARY 1 注: 推荐使用该编译开关. 否则对新手而言, 在自己的工程中使用 MSVC 的 STL 库时会有一 些小麻烦. (5) 如果在 ACE 中要使用 MFC 的库,则需要在 config.h 中添加: #define ACE_HAS_MFC 1 在默认情况下,所有的 ACE 工程使用的是 MSVC 的 DLL 文件作为运行时库。你可以选择使用 ACE 的静态库文件(LIB)而不需考虑这些运行时库。选择动态链接的原因是所有的 NT 都会 包含这些 dll 文件(节省空间). 如果你想使用 MFC 的静态库版本,则需要在 config.h 中 加入以下的宏定义:#define ACE_USES_STATIC_MFC 1 你也可以全部使用静态库,这需要你在 ACE 的工程文件中自己设置。 (6) 如果定义了 ACE_AS_STATIC_LIBS 宏,则 ACE 库将被编译成为静态库。如果你的程序要 静态链接 ACE 的静态库,则在你的工程中也要定义这个宏: ACE_AS_STATIC_LIBS. 作为可选项,为了减小静态库文件和你的可执行程序的大小,你可以在 ACE_ROOT/ace/config.h 文件的#include 语句前添加如下的宏定义 #define ACE_NO_INLINE 来禁止内联函数。 (7) 用 VC 打开 TAO 和 ACE 的工程文件:ACE_ROOT/tao/taoace.dsw,开始编译 ACE 和 TAO. 注 意 ACE 和 TAO 有 Debug 和 Release 两个版本. 你在开发自己的程序时,如果是 Debug 版的程 序, 必须链接 Debug 版的 TAO 库, 如果是 Release 版的程序,必须链接 Release 版的 TAO 库。 d. 编译 打开 VS2010 的命令提示窗口,cd 到 E:\OpenDDS\ACE_wrappers\TAO 目录,执行命令 mwc.pl –type vc10 TAO_ACE.mwc 在 E:\OpenDDS\ACE_wrappers\TAO 目录下生成 TAO_ACE.sln 工程文件。
cd 到 E:\OpenDDS\ACE_wrappers 目录,执行命令 mwc.pl –type vc10 ACE.mwc 在 E:\OpenDDS\ACE_wrappers 目录下生成 ACE.sln 工程文件。 用 VS2010 依次分别打开 TAO_ACE.sln、ACE.sln 进行编译,直至编译成功即可,编译的时间 较长,请耐心等待。 e. 验证编译是否成功 验证源代码取自%TAO_ROOT%\test\Hello 在此目录下用 mwc 生成 Hello.sln 和 vcxporoj 文件: mwc.pl –type vc10 Hello.mwc 用 Visual Studio2010 编译 Hello.sln,可得到 server.exe 和 client.exe。 运行 run_test.pl 得到如上图结果,则说明环境搭建成功。
3、 OpenDDS 编译 a. OpenDDS 下载 打开下载地址,选择版本,我这里选择的是 OpenDDS 3.10 版本。把下载好的文件解 压至 E 盘(E:\OpenDDs\DDS)。 b. 设置相关环境变量 右键计算机->属性->高级系统设置->环境变量 添加系统变量 添加变量名 DDS_ROOT,值为解压路径:E:\OpenDDS\DDS 在 Path 后添加%DDS_ROOT%\lib; %DDS_ROOT%\bin;
c. 编译 打开 VS2010 命令提示窗口,在%DDS_ROOT%目录下运行 configure.cmd。 运行可能会出现这样的错误, E:\OpenDDS\DDS>configure.cmd Could not detect Visual C++ wersion,try running this script from the Visual Stidio Command Prompt. Stopped at configure line 407. 这是因为 OpenDDS 和当前你的 vs 版本依赖不成功,需要修改 configure.sh 脚本,找到 报错的 407 行,添加一行代码,将 vc 参数改成目前你安装的 vs 版本,如果你用的是 vs2010, 就将参数改为 vc10,以此类推,如图: 修改完 configure.sh 脚本后继续执行 configure.cmd 命令,则会在%DDS_ROOT% 目录下生成 DDS.sln 工程文件。 (PS:DDS.sln 文件也可以在%DDS_ROOT%目录下使用 cmd 窗口生成,执行命令) mwc.pl –type vc10 DDS.mwc 打开 OpenDDS 文件会发现多出来一个 DDS.sln 文件,同时发现根目录下还会出现一 个 setenv.cmd 脚本,这是设置环境变量的脚本,直接运行,成功运行后是这样的界面:
使用如下命令行,检查一下我们的环境变量是否正确设置: echo %MPC_ROOT% echo %ACE_ROOT% echo %TAO_ROOT% 每次命令行的成功输入将会得到环境变量的绝对路径。 出现这种画面说明我们的环境变量配置成功了,可以用 VS2010 打开 DDS.sln 工程文 件进行编译了。编译时间较长,请耐心等待。 d. 验证 DDS 环境是否搭建成功 编译完成之后,运行测试文件,验证 DDS 环境搭建是否成功, 在 E:\OpenDDs\DDS\examples\DCPS\Messenger_Imr 目录下执行 run_test.pl 命令。
出现以上内容并出现 test PASSED,则说明 OpenDDS 环境搭建成功,可以用 OpenDDS 运行简单的发布订阅。 本文参考博客:https://www.cnblogs.com/joeywang/p/3719702.html https://blog.csdn.net/nini_boom/article/details/77865035
分享到:
收藏