


ACE 往嵌入式Linux 上移植過程
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++
而不用本身的東西!
總結,干嘛搞個platform_macosx.GNU在那,害人不淺!
關鍵字:ACE 嵌入式 Linux 移植
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解