| 论坛注册| 加入收藏 | 设为首页| RSS
Google
您当前的位置:首页 > Linux频道 > Linux开发区 > 嵌入应用

ACE 往嵌入式Linux 上移植过程的介绍

时间:2007-08-03 10:48:00  来源:Linux联盟收集整理  作者:

1、在安装有Linux操作系统的PC上安装交叉编译器,笔者使用的是Moxa tool chain for DA66x,(其它的嵌入式Linux系统都是一样的做法),可以从Moxa网站上下载:wP9Linux联盟

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

2、将ACE程序包下载到Linux PC上,并解压wP9Linux联盟

3、设置环境变量:wP9Linux联盟

       A、交叉编译工具的路径:export PATH=”/usr/local/xscale_be/bin:$PATH”wP9Linux联盟

       BACE_ROOTexport ACE_ROOT=”/home/jun/ACE_wrappers”(根据实际路径设置)wP9Linux联盟

 wP9Linux联盟

wP9Linux联盟

4、将$ACE_ROOT/ace/config-linux.h复制成$ACE_ROOT/ace/config.hwP9Linux联盟

       cp $ACE_ROOT/ace/config-linux.h $ACE_ROOT/ace/config.hwP9Linux联盟

5、将$ACE_ROOT/include/makeinclude/platform_linux.GNU复制成wP9Linux联盟

$ACE_ROOT/include/makeinclude/platform_macros.GNU并修改wP9Linux联盟

$ACE_ROOT/include/makeinclude/platform_macros.GNU文件:wP9Linux联盟

添加:

wP9Linux联盟

CC              = xscale_be-gcc

wP9Linux联盟

CXX             = xscale_be-g++

wP9Linux联盟

删除:

wP9Linux联盟

insure ?= 0

wP9Linux联盟

ifeq ($(insure),1)

wP9Linux联盟

  CC  = insure

wP9Linux联盟

  CXX = insure

wP9Linux联盟

else

wP9Linux联盟

  CC  ?= gcc

wP9Linux联盟

  CXX ?= g++

wP9Linux联盟

endif

wP9Linux联盟

 wP9Linux联盟

wP9Linux联盟

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

wP9Linux联盟

7、进入$ACE_ROOT,直接输入makewP9Linux联盟

 wP9Linux联盟

wP9Linux联盟

8、将生成的libACE.so.5.5.6复制到DA66xCF卡上/mnt/had/lib,并编辑DA662/etc/profile,在该文件中添加export LD_LIBRARY_PATH="/mnt/hda/lib: $LD_LIBRARY_PATH "wP9Linux联盟

 wP9Linux联盟

wP9Linux联盟

9、另外,gperf目录下的测试程序无法编译,因为这些测试程序要用的通过wP9Linux联盟

 $(ACE_ROOT)/apps/gperf/src/目录下的相关源代码生成的gperf程序去完成下一步动作,而这个程序是利用交叉编译器生成的,不能在PC上运行。因此在GNUmakefile里面的all:后面,我们要删除cppinset adainset cinset iinset iinset2 m3inset pinset preinset taoinset tinset这些目标对象。

wP9Linux联盟

 wP9Linux联盟

wP9Linux联盟

10、整个编译过程要30分钟左右,看机器性能。wP9Linux联盟

 wP9Linux联盟

wP9Linux联盟

插曲:一开始笔者使用的是platform_macosx.GNU,对这个文件做了适当的调整然后命名为platform_macros.GNU,原因是他们很相似。结果一开始编译还挺顺利的,可是没一会(在编译ACEXML的时候)就编译不下去了,晕死了!而且生成的libACE.so库也有问题!后来在网上看到其它网友在Linux下编译ACE,受到启发,改用platform_linux.GNU,并且直接wP9Linux联盟

wP9Linux联盟

添加:

wP9Linux联盟

CC              = xscale_be-gcc

wP9Linux联盟

CXX             = xscale_be-g++wP9Linux联盟

而不用本身的东西!wP9Linux联盟

 wP9Linux联盟

总结,干嘛搞个platform_macosx.GNU在那,害人不浅啊!wP9Linux联盟

来顶一下
近回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
相关文章
    无相关信息
栏目更新
栏目热门