当前位置: 技术问答>linux和unix
andlinux-beta1-minimal中怎么安装GCC呀
来源: 互联网 发布时间:2016-05-30
本文导语: 我下了个andlinux-beta1-minimal,安装后没有发现GCC,望高人指点如何在andlinux-beta1-minimal中安装GCC,并构建开发ARM的交叉编译环境。 | 用Crosstool可方便构建各种版本的交叉编译工具 开始工作: 首...
我下了个andlinux-beta1-minimal,安装后没有发现GCC,望高人指点如何在andlinux-beta1-minimal中安装GCC,并构建开发ARM的交叉编译环境。
|
用Crosstool可方便构建各种版本的交叉编译工具
开始工作:
首先,下载安装andLinux在你的WINDOWS系统中,大多andLinux安装过程简单易懂,下载运行SETUP程序后回答些简单的询问后 "NEXT就 可以了,我的安装和大多数网上介绍的有一点不同是在询问:"How do you want to access your Windows file system from andLinux?"时我选择的是"using COFS",然后选一个你想用来和LINUX传递数据的文件夹,我觉得这样更简单.其他过程不再赘述.
andLinux安装后默认在任务栏有两个有用的工具:Konsole和KHomeFolder,前者可打开一个命令行窗口,后者可打开一个类似WINDOWS的窗口,对于习惯在WINDOWS下工作的人非常方便.
andLinux缺少以下必须的部分,我们给加上(你的电脑应该连在网上):
在Konsole窗口中分步输入(用户为root):
1:apt-get install bzip2
2:apt-get install patch
3:apt-get install bison
4:apt-get install flex
安装完后要建一个用户了(crosstool不允许在root安装)
adduser mask
在KHomeFolder窗口下可看到在home目录下为新用户新建了一个mask目录.
现在,下载最新的Crosstool(现在是crosstool-0.43.tar.gz)并放到mask目录下,在KHomeFolder中右键的属性中改其user和group都改为mask.
在Konsole窗口中切换到mask用户
[root@andLinux ~]#su mask
mask@andlinux:/root$
下面操作在用户mask下.
在mask目录下解压crosstool-0.43.tar.gz:
命令为:
tar -xvzf crosstool-0.43.tar.gz
解压后在mask下生成crosstool-0.43目录,我们可找到:demo-arm.sh文件
把它在同一目录下另存为arm.sh
其内容为:
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture. Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txt
set -ex
TARBALLS_DIR=$HOME/downloads #下载的软件包存放的地址
RESULT_TOP=/opt/crosstool#交叉编译环境安装的地址
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don't need to run as root.
Mkdir -p $RESULT_TOP
#eval `cat arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest
#eval `cat arm.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest
#这是我们要编译的交叉环境的版本
echo Done.
这里我没做任何改动
接下来看文件arm.dat内容,修改后为:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux #交叉编译软件的前缀,如arm-linux-gcc
TARGET_CFLAGS="-O"
下一步打开gcc-4.1.0-glibc-2.3.2-tls.dat:
内容如下:
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.0
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5
GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread --enable-kernel=2.4.18"
在mask目录下新建目录:downloads其user和group属性为mask
可下载gcc-4.1.0-glibc-2.3.2-tls.dat中提到的文件到downloads,不下也可以,crosstool会自动下,不过速度较慢.
我下的文件有(有些可能没用):
binutils-2.16.1.tar.bz2
gcc-3.3.6.tar.gz
gcc-4.1.0.tar.bz2
gdb-6.5.tar.bz2
gdb-6.5.tar.gz
glibc-2.3.2.tar.gz
glibc-linuxthreads-2.3.2.tar.gz
linux-2.6.15.4.tar.gz
linux-libc-headers-2.6.12.0.tar.bz2
准备工作快完成了
现在在根目录: opt下建目录: crosstool其user和group属性为mask,也就是mask用户可读写
现在可以执行arm.sh来编译交叉编译工具了.
执行如下命令
mask@andlinux:~$ cd crosstool-0.43
mask@andlinux:~/crosstool-0.43$ ./arm.sh
几小时后(具体时间我不知道,睡觉去了),在 /opt/crosstool 下就生成了交叉编译工具.
最后添加环境变量:
在/ect/下找到文件:[code]bash.bashrc
在其最后添加:
export PATH=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin:$PATH
保存,重新启动andlinux
测试一下交叉编译工具
写一个简单的c程序test.c:
#include
int main()
{
printf("hello,world!n");
return 0;
}
用以下命令编译:
arm-linux-gcc -o test test.c
然后:
file test
当显示: test: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.4.18, dynamically linked (uses shared libs), not stripped
表明交叉编译工具正常.
开始工作:
首先,下载安装andLinux在你的WINDOWS系统中,大多andLinux安装过程简单易懂,下载运行SETUP程序后回答些简单的询问后 "NEXT就 可以了,我的安装和大多数网上介绍的有一点不同是在询问:"How do you want to access your Windows file system from andLinux?"时我选择的是"using COFS",然后选一个你想用来和LINUX传递数据的文件夹,我觉得这样更简单.其他过程不再赘述.
andLinux安装后默认在任务栏有两个有用的工具:Konsole和KHomeFolder,前者可打开一个命令行窗口,后者可打开一个类似WINDOWS的窗口,对于习惯在WINDOWS下工作的人非常方便.
andLinux缺少以下必须的部分,我们给加上(你的电脑应该连在网上):
在Konsole窗口中分步输入(用户为root):
1:apt-get install bzip2
2:apt-get install patch
3:apt-get install bison
4:apt-get install flex
安装完后要建一个用户了(crosstool不允许在root安装)
adduser mask
在KHomeFolder窗口下可看到在home目录下为新用户新建了一个mask目录.
现在,下载最新的Crosstool(现在是crosstool-0.43.tar.gz)并放到mask目录下,在KHomeFolder中右键的属性中改其user和group都改为mask.
在Konsole窗口中切换到mask用户
[root@andLinux ~]#su mask
mask@andlinux:/root$
下面操作在用户mask下.
在mask目录下解压crosstool-0.43.tar.gz:
命令为:
tar -xvzf crosstool-0.43.tar.gz
解压后在mask下生成crosstool-0.43目录,我们可找到:demo-arm.sh文件
把它在同一目录下另存为arm.sh
其内容为:
#!/bin/sh
# This script has one line for each known working toolchain
# for this architecture. Uncomment the one you want.
# Generated by generate-demo.pl from buildlogs/all.dats.txt
set -ex
TARBALLS_DIR=$HOME/downloads #下载的软件包存放的地址
RESULT_TOP=/opt/crosstool#交叉编译环境安装的地址
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++"
export GCC_LANGUAGES
# Really, you should do the mkdir before running this,
# and chown /opt/crosstool to yourself so you don't need to run as root.
Mkdir -p $RESULT_TOP
#eval `cat arm.dat gcc-2.95.3-glibc-2.1.3.dat` sh all.sh --notest
#eval `cat arm.dat gcc-2.95.3-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-2.95.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.2.3-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.3.6-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.2.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm.dat gcc-3.4.5-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.2-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.5-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.0.2-glibc-2.3.6-tls.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.2.2.dat` sh all.sh --notest
#eval `cat arm.dat gcc-4.1.0-glibc-2.3.2.dat` sh all.sh --notest
eval `cat arm.dat gcc-4.1.0-glibc-2.3.2-tls.dat` sh all.sh --notest
#这是我们要编译的交叉环境的版本
echo Done.
这里我没做任何改动
接下来看文件arm.dat内容,修改后为:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux #交叉编译软件的前缀,如arm-linux-gcc
TARGET_CFLAGS="-O"
下一步打开gcc-4.1.0-glibc-2.3.2-tls.dat:
内容如下:
BINUTILS_DIR=binutils-2.16.1
GCC_CORE_DIR=gcc-3.3.6
GCC_DIR=gcc-4.1.0
GLIBC_DIR=glibc-2.3.2
LINUX_DIR=linux-2.6.15.4
LINUX_SANITIZED_HEADER_DIR=linux-libc-headers-2.6.12.0
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.2
GDB_DIR=gdb-6.5
GLIBC_EXTRA_CONFIG="$GLIBC_EXTRA_CONFIG --with-tls --with-__thread --enable-kernel=2.4.18"
在mask目录下新建目录:downloads其user和group属性为mask
可下载gcc-4.1.0-glibc-2.3.2-tls.dat中提到的文件到downloads,不下也可以,crosstool会自动下,不过速度较慢.
我下的文件有(有些可能没用):
binutils-2.16.1.tar.bz2
gcc-3.3.6.tar.gz
gcc-4.1.0.tar.bz2
gdb-6.5.tar.bz2
gdb-6.5.tar.gz
glibc-2.3.2.tar.gz
glibc-linuxthreads-2.3.2.tar.gz
linux-2.6.15.4.tar.gz
linux-libc-headers-2.6.12.0.tar.bz2
准备工作快完成了
现在在根目录: opt下建目录: crosstool其user和group属性为mask,也就是mask用户可读写
现在可以执行arm.sh来编译交叉编译工具了.
执行如下命令
mask@andlinux:~$ cd crosstool-0.43
mask@andlinux:~/crosstool-0.43$ ./arm.sh
几小时后(具体时间我不知道,睡觉去了),在 /opt/crosstool 下就生成了交叉编译工具.
最后添加环境变量:
在/ect/下找到文件:[code]bash.bashrc
在其最后添加:
export PATH=/opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-linux/bin:$PATH
保存,重新启动andlinux
测试一下交叉编译工具
写一个简单的c程序test.c:
#include
int main()
{
printf("hello,world!n");
return 0;
}
用以下命令编译:
arm-linux-gcc -o test test.c
然后:
file test
当显示: test: ELF 32-bit LSB executable, ARM, version 1, for GNU/Linux 2.4.18, dynamically linked (uses shared libs), not stripped
表明交叉编译工具正常.
|
這兩天幫一個MM弄一個交叉編譯庫,寫了篇總結,貼一部份給你吧:
Android是google倡导创立的基于linux的开源手机平台。它运行的硬件平台包括ARM处理器。这篇文章会建立一个
基于linux的Andriod的交叉编译环境,虽然我没有实际的安装Andriod的SDK,但是这里编译出来的应用程序,已经
可以直接运行在ARM的处理器上并正常工作了。
安装交叉编译器
这篇文章采用的交叉编译器是rm-none-linux-gnueabi,可以在下面的地址下载得到:
http://www.codesourcery.com/gnu_toolchains/arm/portal/package3399/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin
下载以后,首先加上可执行权限,然后安装,如下所示:
[root][~]# chmod +x arm-2008q3-41-arm-none-linux-gnueabi.bin
[root][~]# ./arm-2008q3-41-arm-none-linux-gnueabi.bin
为了演示方便,我完全用默认的安装方式,即在/root目录下会生成这个目录:
[root][~]# ls -dl /root/CodeSourcery/
drwxrwxr-x 4 root root 4.0K 2009-04-12 23:08 /root/CodeSourcery/
安装程序安装结束后,会默认添加目录到PATH中,但不知道为什么,在我的debian系统下,默认的添加并没有成
功,所以最好还是手动的确认一下为好:
[root][~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/CodeSourcery/Sourcery_G++_Lite/bin:/root/CodeSourcery/Sourcery_G++_Lite/bin/
如果你的PATH中不含有红色的部分,请手动执行下面的命令添加环境变量:
[root][~]# export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/
這樣安裝完以後,輸入arm然後按tab自動補齊,就能看到交叉編譯器的名字了,或者直接到這個目錄下去看:
/root/CodeSourcery/Sourcery_G++_Lite/bin/
Android是google倡导创立的基于linux的开源手机平台。它运行的硬件平台包括ARM处理器。这篇文章会建立一个
基于linux的Andriod的交叉编译环境,虽然我没有实际的安装Andriod的SDK,但是这里编译出来的应用程序,已经
可以直接运行在ARM的处理器上并正常工作了。
安装交叉编译器
这篇文章采用的交叉编译器是rm-none-linux-gnueabi,可以在下面的地址下载得到:
http://www.codesourcery.com/gnu_toolchains/arm/portal/package3399/public/arm-none-linux-gnueabi/arm-2008q3-41-arm-none-linux-gnueabi.bin
下载以后,首先加上可执行权限,然后安装,如下所示:
[root][~]# chmod +x arm-2008q3-41-arm-none-linux-gnueabi.bin
[root][~]# ./arm-2008q3-41-arm-none-linux-gnueabi.bin
为了演示方便,我完全用默认的安装方式,即在/root目录下会生成这个目录:
[root][~]# ls -dl /root/CodeSourcery/
drwxrwxr-x 4 root root 4.0K 2009-04-12 23:08 /root/CodeSourcery/
安装程序安装结束后,会默认添加目录到PATH中,但不知道为什么,在我的debian系统下,默认的添加并没有成
功,所以最好还是手动的确认一下为好:
[root][~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/CodeSourcery/Sourcery_G++_Lite/bin:/root/CodeSourcery/Sourcery_G++_Lite/bin/
如果你的PATH中不含有红色的部分,请手动执行下面的命令添加环境变量:
[root][~]# export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/
這樣安裝完以後,輸入arm然後按tab自動補齊,就能看到交叉編譯器的名字了,或者直接到這個目錄下去看:
/root/CodeSourcery/Sourcery_G++_Lite/bin/
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。