歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

嵌入式Linux攻略 ACE程序移植過程詳細解析

1、在安裝有Linux操作系統的PC上安裝交叉編譯器,筆者使用的是Moxa tool chain for DA66x,(其它的嵌入式Linux系統都是一樣的做法),可以從Moxa網站上下載:

  http://www.moxa.com/drivers/UC/DA_66X_LX/tool_chain/linux/V1.0/Linux_tool-chain_1.0.zip

  2、將ACE程序包下載到Linux PC上,並解壓

  3、設置環境變量:

  A、交叉編譯工具的路徑:export PATH=“/usr/local/xscale_be/bin:$PATH”

  B、ACE_ROOT:export ACE_ROOT=“/home/jun/ACE_wrappers”(根據實際路徑設置)

  4、將$ACE_ROOT/ace/config-linux.h復制成$ACE_ROOT/ace/config.h

  cp $ACE_ROOT/ace/config-linux.h $ACE_ROOT/ace/config.h

  5、將$ACE_ROOT/include/makeinclude/platform_linux.GNU復制成

  $ACE_ROOT/include/makeinclude/platform_macros.GNU並修改

  $ACE_ROOT/include/makeinclude/platform_macros.GNU文件:

  添加:

  CC = xscale_be-gcc

  CXX = xscale_be-g++

  刪除:

insure ?= 0

ifeq ($(insure),1)

  CC  = insure

  CXX = insure

else

  CC  ?= gcc

  CXX ?= g++

endif


  6、修改$ACE_ROOT/include/makeinclude/platform_g++_common.GNU文件,注釋第90行:LDFLAGS += -Wl,-E

  7、進入$ACE_ROOT,直接輸入make

  8、將生成的libACE.so.5.5.6復制到DA66x的CF卡上/mnt/had/lib,並編輯DA662的/etc/profile,在該文件中添加export LD_LIBRARY_PATH="/mnt/hda/lib: $LD_LIBRARY_PATH "

  9、另外,gperf目錄下的測試程序無法編譯,因為這些測試程序要用的通過。

  $(ACE_ROOT)/apps/gperf/src/目錄下的相關源代碼生成的gperf程序去完成下一步動作,而這個程序是利用交叉編譯器生成的,不能在PC上運行。因此在GNUmakefile裡面的all:後面,我們要刪除cppinset adainset cinset iinset iinset2 m3inset pinset preinset taoinset tinset這些目標對象。

  10、整個編譯過程要30分鐘左右,看機器性能。

  插曲:一開始筆者使用的是platform_macosx.GNU,對這個文件做了適當的調整然後命名為platform_macros.GNU,原因是他們很相似。結果一開始編譯還挺順利的,可是沒一會(在編譯ACEXML的時候)就編譯不下去了,暈死了!而且生成的libACE.so庫也有問題!後來在網上看到其它網友在Linux下編譯ACE,受到啟發,改用platform_linux.GNU,並且直接

  添加:

  CC = xscale_be-gcc

  CXX = xscale_be-g++

 

Copyright © Linux教程網 All Rights Reserved