题主曾经在不同的机子上面安装过OpenDDS,发现在不同机子安装OpenDDS会出现不同的问题,题主这里描述的问题肯定是不全的,后续会继续更新。
我总结出,安装OpenDDS过程中最让人头疼的其实是ACE_TAO的编译,无论是设置环境变量的错误,还是生成vc文件失败,或者是编译所需要的文件不全,最主要是我们没有一个拿来即可用的ACE_TAO的套餐,从源码生成各个vc和makefile文件,需要做大量的工作,那么有没有已经有全部生成好了的sln和makefile直接给我们使用的呢?
答案是肯定的,ACE+TAO有两种版本可供选择,Full版和Sources Only版,Full指的是项目文件已经生成的版本(Makefiles和VC项目文件),Sources Only版本仅仅包含源代码,需要自己生成MPC生成makefile。这里只讨论Full版本的安装。
下载最新的ACE+TAO版本,windows就下载.zip格式的,解压放到OpenDDS的根目录下。
一、接下来就是老套路:设置环境变量。如果已经设置好的同学可跳过此处。
ACE_ROOT设置为zip解压后的根目录,我的为D:\ACE_wrappers;
TAO_ROOT设置为%ACE_ROOT%\TAO,我的为D:\ACE_wrappers\TAO;
PATH添加%ACE_ROOT%\lib和%ACE_ROOT%\bin。
二、设置config.h
于%ACE_ROOT%/ace下新建一个配置文件config.h,内容为#include “ace/config-win32.h”。
三、编译ACE_TAO
分别打开%ACE_ROOT\%ACE.sln和%ACE_ROOT\%ACE_TAO.sln,依次进行编译,根据自己的vs版本选择相应的项目文件
项目文件名 | 对应的vs版本 |
---|---|
ace_vc12.sln | vs2013 |
ace_vc14.sln | vs2015 |
ace_vs2017.sln | vs2017 |
目前OpenDDS和ACE_TAO没有提供vs2012版本,所以需要用vs2012以上的版本进行安装编译。
四、编译OpenDDS
将OpenDDS的根目录设置为当前的DDS_ROOT路径,PATH添加% DDS_ROOT %\lib和% DDS_ROOT %\bin,或者在运行.\configure.cmd结束后会出现.\setenv.cmd脚本,运行即可设置好环境变量。
打开DDS.sln进行编译,记得要和编译ACE_TAO时是一个版本的vs,这个编译过程很久,估计得半个多小时,结束后,打开DDS根目录下的lib文件,如果出现了如下图的情况,即表示编译成功。