`
Hegar
  • 浏览: 13531 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

在windows下交叉编译用于vxworks6.6的ACE+TAO

 
阅读更多

 

1.     下载安装ActivePerl,并添加环境变量

C:\Perl\site\bin;C:\Perl\bin;

PATH中;

以上假如按默认路径安装,其实安装时有提供是否添加环境变量到PATH中,选上即可。

安装Perl的意图时ACE+TAO中很多perl脚本,需要perl的支持。

 

2.      解压ACE+TAO-2.0a.tar.gzc盘,假设解压后路径为: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%\libPATH

 

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编译静态版的ACEace_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到各个相关目录(如aceTAO\taoTAO\orbsvcs等各种你要用的组件目录)执行make指令。

 

至此编译完成。

会在%ACE_ROOT%\lib下生成很多*.a文件,并且所有的相关例子也将编译生成目标文件,可以查看%TAO_ROOT%下的例子,会看到*.vxe的文件,是供在vxworks下使用的执行文件。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics