当前位置: 技术问答>linux和unix
如何交叉编译出arm-linux程序
来源: 互联网 发布时间:2016-06-17
本文导语: 我在我的linux上写了一个程序,只有一个文件main.cpp.能够正常运行,我想将这个程序移植到arm-linux上.编译环境别人已经建好了,但是只有一个压缩包发给我.解压后我的目录如下.根目录是/home/arm-uclibc-3.4.6,arm-uclibc-3.4.6...
我在我的linux上写了一个程序,只有一个文件main.cpp.能够正常运行,我想将这个程序移植到arm-linux上.编译环境别人已经建好了,但是只有一个压缩包发给我.解压后我的目录如下.根目录是/home/arm-uclibc-3.4.6,arm-uclibc-3.4.6下有目录:bin,include,lib,libexec等.bin下有arm-linux-g++等编译工具.include下是头文件,lib下是库文件.请问我该怎样设置环境,makefile怎么写,才能编译出能在arm-linux上运行的程序.
|
一、交叉编译环境arm-linux-gcc-2.95.3 的建立
1.下载cross-2.95.3.tar.bz2
2.建目录,复制,解压
# cd /usr/local
# mkdir arm
# cd arm
复制cross-2.95.3.tar.bz2 到当前目录
# tar jxvf cross-2.95.3.tar.bz2
3.导出/usr/local/arm/2.95.3/bin 到环境变量
在/etc/profile 最后添加 PATH=$PATH:/usr/local/arm/2.95.3/bin
二、交叉编译环境arm-linux-gcc-3.4.1的建立
1.下载arm-linux-gcc-3.4.1.tar.bz2
ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
2.复制,解压
# cd /
复制arm-linux-gcc-3.4.1.tar.bz2到当根目录
# tar jxvfarm-linux-gcc-3.4.1.tar.bz2
3.导出/usr/local/arm/3.4.1/bin 到环境变量
在/etc/profile 最后添加 PATH=$PATH:/usr/local/arm/3.4.1/bin
三、导出使环境变量(具体这一步都没有写,也可以)
1.用export PATH=$PATH:/usr/local/arm/2.95.3/bin/: (临时起作用)
2.在你的家目录里,修改自己的环境变量:vi ~/.bash_profile 把这个文件添加到 .bash_profile中就行了 ;(对某用户起作用)
3.修改/etc/porfile文件,在最后加上export PATH=$PATH:/usr/local/arm/2.95.3/bin/: (对所有用户起作用);
文件修改后,要使更改环境变量生效一般的做法是重新登录,
运行# source /etc/profile 可以使导出的环境变量马上生效,避免重启。『在执行这之后,在echo $PATH中又多出了一条我们在/etc/profile中添加的路径:/usr/local/arm/2.95.3/bin/。但重启后又没有了』
1.下载cross-2.95.3.tar.bz2
2.建目录,复制,解压
# cd /usr/local
# mkdir arm
# cd arm
复制cross-2.95.3.tar.bz2 到当前目录
# tar jxvf cross-2.95.3.tar.bz2
3.导出/usr/local/arm/2.95.3/bin 到环境变量
在/etc/profile 最后添加 PATH=$PATH:/usr/local/arm/2.95.3/bin
二、交叉编译环境arm-linux-gcc-3.4.1的建立
1.下载arm-linux-gcc-3.4.1.tar.bz2
ftp://ftp.handhelds.org/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2
2.复制,解压
# cd /
复制arm-linux-gcc-3.4.1.tar.bz2到当根目录
# tar jxvfarm-linux-gcc-3.4.1.tar.bz2
3.导出/usr/local/arm/3.4.1/bin 到环境变量
在/etc/profile 最后添加 PATH=$PATH:/usr/local/arm/3.4.1/bin
三、导出使环境变量(具体这一步都没有写,也可以)
1.用export PATH=$PATH:/usr/local/arm/2.95.3/bin/: (临时起作用)
2.在你的家目录里,修改自己的环境变量:vi ~/.bash_profile 把这个文件添加到 .bash_profile中就行了 ;(对某用户起作用)
3.修改/etc/porfile文件,在最后加上export PATH=$PATH:/usr/local/arm/2.95.3/bin/: (对所有用户起作用);
文件修改后,要使更改环境变量生效一般的做法是重新登录,
运行# source /etc/profile 可以使导出的环境变量马上生效,避免重启。『在执行这之后,在echo $PATH中又多出了一条我们在/etc/profile中添加的路径:/usr/local/arm/2.95.3/bin/。但重启后又没有了』
|
你用你原来的Makfefile,直接make不行吗?
arm-linux-g++ -lpthread -I ${ARMInc} -g test.cpp -o test
arm-linux-g++ -lpthread -I ${ARMInc} -g test.cpp -o test
|
还有这种事?
再copy一个armtest过来看看。
是挂载PC的nfs吗?
再copy一个armtest过来看看。
是挂载PC的nfs吗?