嵌入式linux使用交叉编译器编译ACE
2008-05-16 15:00
363 查看
1、在安装有Linux操作系统的PC上安装交叉编译器,笔者使用的是Moxa tool chain
2、将ACE程序包下载到Linux PC上,并解压
3、设置环境变量:
A、交叉编译工具的路径:export PATH=”/usr/local/mxscaleb/bin:$PATH”
B、ACE_ROOT:export ACE_ROOT=”/usr/local/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 = mxscaleb-gcc
CXX = mxscaleb-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文件,注释:LDFLAGS += -Wl,-E
7、进入$ACE_ROOT,直接输入make
8、将生成的libACE.so.5.5.6 复制到CF卡上/mnt/had/lib,并编辑/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 = mxscaleb-gcc
CXX = mxscaleb-g++
2、将ACE程序包下载到Linux PC上,并解压
3、设置环境变量:
A、交叉编译工具的路径:export PATH=”/usr/local/mxscaleb/bin:$PATH”
B、ACE_ROOT:export ACE_ROOT=”/usr/local/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 = mxscaleb-gcc
CXX = mxscaleb-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文件,注释:LDFLAGS += -Wl,-E
7、进入$ACE_ROOT,直接输入make
8、将生成的libACE.so.5.5.6 复制到CF卡上/mnt/had/lib,并编辑/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 = mxscaleb-gcc
CXX = mxscaleb-g++
相关文章推荐
- 使用嵌入式linux完全手册光盘的arm-linux-gcc 遇到问题 自己编译
- 嵌入式 Linux下编译并使用curl静态库
- 使用Visual Studio 利用WinGDB编译和远程调试嵌入式Linux的程序
- 嵌入式Linux开发必要环境搭建(虚拟机共享文件夹,交叉编译器,内核编译库)
- 在Linux平台上使用Cmake进行交叉编译替代嵌入式平台所使用的Makefile
- 嵌入式Linux系统移植-使用crosstool创建自己的交叉编译器
- 如何在linux编译和使用ACE
- 嵌入式linux上Google breakpad编译使用
- 嵌入式 Linux下编译并使用curl静态库
- Ubuntu 16.04(64bit)嵌入式交叉编译环境搭建arm-linux-gcc使用
- 使用Visual Studio 利用WinGDB编译和远程调试嵌入式Linux的程序
- Ubuntu10.04搭建linux-0.11编译环境(1.bochs安装和使用)
- 在Linux下如何使用GCC编译程序、简单生成静态库及动态库。
- OK6410 Linux开发环境搭建--编译以及ubuntu的使用方法学习笔记
- 使用VS+VisualGDB编译调试Linux程序
- 【Linux学习】Ubuntu下嵌入式交叉编译环境arm-linux-gcc搭建
- qt4.8.6版本使用arm-linux-gcc-3.4.5编译问题
- 嵌入式系统产品是如何使用Linux
- Linux中使用VS Code编译调试C++项目详解
- ACE应用在Linux下编译事项