继续说前面.\configure.cmd脚本运行后的安装
脚本的成功运行界面应该是这样的,下图:
打开OpenDDS文件会发现多出来一个 DDS_TAOv2_all.sln文件,这正是我们后续需要编译的主工程,但是目前还不可以直接成功编译,仔细观察,会发现根目录下还会出现一个setenv.cmd脚本,这正是设置环境变量的脚本!不啰嗦,直接运行,成功运行后是这样的界面:
使用如下命令行,检查一下我们的环境变量是否正确设置:
echo %ACE_ROOT%
echo %MPC_ROOT%
echo %TAO_ROOT%
每次命令行的成功输入将会得到环境变量的绝对路径。
好了,成功设置完路径就可以启动主工程进行编译了,这里注意要使用命令行来启动vs:
.\DDS_TAOv2_all.sln
编译,这个过程比较长,如果CPU较好,建议将vs并发编译线程调高一些,可以缩短时间,打开vs ->工具->环境和解决方案->生成并运行。
如图:
如果幸运,等一会在OpenDDS根目录的lib中发现许多dll文件(如图),这就说明我们成功了!
但是如果出现报错,说找不到文件(下图),
这其实跟OpenDDS生成的原理在这里:
http://blog.sina.cn/dpool/blog/s/blog_6f83fdb40102uwkd.html?type=-1
简单地说,就是OpenDDS的生成方式很特殊,依赖于环境变量和环境,然后根据已经定好的环境,使用MPC去生成所需要的代码,就是边编译,边生成代码,然后再编译这样的一个过程,所以OpenDDS编译的时间久,除了和它自带的列子多有关,还和它的编译方式有关。
那么这个问题该怎么解决呢?问题出在这里:MPC环境变量没有设置正确,即使当前的MPC路径真的指向了mpc文件,但是却是无效的,需要我们另外配置路径
ACE_ROOT=c:\dre\ACE_wrappers
TAO_ROOT=c:\dre\TAO
MPC_ROOT=c:\dre\MPC
PATH=%PATH%;%ACE_ROOT%\bin;%ACE_ROOT%\lib
具体方式如图:
然后可以重启,重新编译一遍。
后续遇到更多问题会继续更新博客。