1. 下载安装ActivePerl,并添加环境变量
C:\Perl\site\bin;C:\Perl\bin;
到PATH中;
以上假如按默认路径安装,其实安装时有提供是否添加环境变量到PATH中,选上即可。
安装Perl的意图时ACE+TAO中很多perl脚本,需要perl的支持。
2. 解压ACE+TAO-2.0a.tar.gz到c盘,假设解压后路径为:C:\ACE_wrappers
cmd打开命令行:
cd C:\ACE_wrappers
MPC\ clone_build_tree.pl default
将会拷贝C:\ACE_wrappers下的文件到C:\ACE_wrappers\build\default下形成build tree,只需在这下面编译ACE+TAO就行了,建议不要直接在原目录树上编译,还是拷贝一份比较好。
3. 设置环境变量
ACE_ROOT=c:\ACE_wrappers\build\default
TAO_ROOT=%ACE_ROOT%\TAO
添加%ACE_ROOT%\bin;%ACE_ROOT%\lib到PATH中
4. 在%ACE_ROOT%\ace\下创建文件config.h,添加如下内容:
#if defined (sun)
# include "ace/config-sunos5.10.h"
#elif defined (linux)
# include "ace/config-linux.h"
#elif defined (_MSC_VER)
# define ACE_DISABLE_WIN32_ERROR_WINDOWS
# define ACE_DISABLE_WIN32_INCREASE_PRIORITY
# include "ace/config-win32.h"
#elif defined (ACE_VXWORKS)
# include "ace/config-vxworks.h"
#endif
5. 以下windows编译静态版的ACE、ace_gperf 和tao_idl,这是在vs2010中完成的,
cd %ACE_ROOT%\TAO
..\bin\mwc.pl -static -type vc10 TAO_ACE.mwc
生成vs2010的解决方案。
用vs2010打开%ACE_ROOT%\TAO\ TAO_ACE.sln,将会加载所有项目,选择Release编译模式,但只需编译TAO_IDL_EXE项目,编译其时回编译相关的项目,总共5个。
编译完成后会在%ACE_ROOT%\bin中生成ace_gperf.exe,tao_idl.exe,在%ACE_ROOT%\lib\中生成相关库。
6. 在%ACE_ROOT%\include\makeinclude中创建platform_macros.GNU,在文件添加:
debug=0
optimize=1
static_libs_only=1
CPU=PENTIUM3
TOOL_FAMILY=gnu
include $(ACE_ROOT)/include/makeinclude/platform_vxworks.GNU
这里只编译生成静态库,CPU根据你板子的类型来定,你也可以设置TOOL_FAMILY=diab,看你使用workbench时用使用的编译器,这里使用gnu的。RTP默认为1,设置为0,为kernel mode applications进行编译。
7. 交叉编译ACE+TAO
打开Visual Studio 命令提示行:
C:\WindRiver\wrenv.exe -p vxworks-6.6
以上命令将打开VxWorks development shell,这样就在命令行中设置了相关的环境变量以用于交叉编译(前面生成的tao_idl.exe,ace_gperf.exe将发挥作用),否则你的自己手动设置N多环境变量。
继续:
cd %ACE_ROOT%
mwc.pl -type gnuace 一次性生成所有项目的makefiles文件
make
cd %TAO_ROOT% (这一步好像也不需要了,上面的步骤好像也将tao编译了,我有点忘了,执行一遍无碍)
make
如果采用mwc.pl -type gnuace –recurse生成makefiles文件,你需要自己cd到各个相关目录(如ace,TAO\tao,TAO\orbsvcs等各种你要用的组件目录)执行make指令。
至此编译完成。
会在%ACE_ROOT%\lib下生成很多*.a文件,并且所有的相关例子也将编译生成目标文件,可以查看%TAO_ROOT%下的例子,会看到*.vxe的文件,是供在vxworks下使用的执行文件。