在windows下交叉編譯用於vxworks6.6的ACE+TAO

在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.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下使用的執行文件。

 

文件來自https://www.iteye.com/blog/hegar-1454780

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章