这个问题已经折腾我好长时间了,也试着用apt-get install xxxx 安装了不少32位库都不行,最后通过群中的朋友 @涂兵兵-深圳-半年 提醒更新给Ubuntu 16.04更换更新源试试,于是从网上找了好多试了可以,下面就是我的操作步骤,以备其它朋友遇到此问题能用上。
第一步:
ubuntu 16.04 更换源
cd /etc/apt
- 1
在修改前先对 sources.list文件进行备份
sudo cp sources.list sources.list.bak
- 1
修改sources.list文件
sudo vi sources.list
- 1
删除掉sources.list的其他内容,选择任意源粘贴复制进去,这里以阿里云为例
ubuntu 16.04源
阿里云:
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
东北大学:
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial main restricted #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted
deb-src http://mirror.neu.edu.cn/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security universe
deb http://mirror.neu.edu.cn/ubuntu/ xenial-security multiverse
清华大学:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
更新源
sudo apt-get update
- 1
更新软件(时间较长,慢慢等待!)
sudo apt-get upgrade
- 1
提供最后一部分提示:Unpacking lib32quadmath0 (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package libx32quadmath0.
Preparing to unpack .../libx32quadmath0_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking libx32quadmath0 (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package lib32gcc-5-dev.
Preparing to unpack .../lib32gcc-5-dev_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking lib32gcc-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package libx32gcc-5-dev.
Preparing to unpack .../libx32gcc-5-dev_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking libx32gcc-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package gcc-5-multilib.
Preparing to unpack .../gcc-5-multilib_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking gcc-5-multilib (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package lib32stdc++-5-dev.
Preparing to unpack .../lib32stdc++-5-dev_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking lib32stdc++-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package libx32stdc++-5-dev.
Preparing to unpack .../libx32stdc++-5-dev_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking libx32stdc++-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package g++-5-multilib.
Preparing to unpack .../g++-5-multilib_5.4.0-6ubuntu1~16.04.9_amd64.deb ...
Unpacking g++-5-multilib (5.4.0-6ubuntu1~16.04.9) ...
Selecting previously unselected package gcc-multilib.
Preparing to unpack .../gcc-multilib_4%3a5.3.1-1ubuntu1_amd64.deb ...
Unpacking gcc-multilib (4:5.3.1-1ubuntu1) ...
Selecting previously unselected package g++-multilib.
Preparing to unpack .../g++-multilib_4%3a5.3.1-1ubuntu1_amd64.deb ...
Unpacking g++-multilib (4:5.3.1-1ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
Setting up libc6-dev-i386 (2.23-0ubuntu10) ...
Setting up libc6-x32 (2.23-0ubuntu10) ...
Setting up libc6-dev-x32 (2.23-0ubuntu10) ...
Setting up lib32gcc1 (1:6.0.1-0ubuntu1) ...
Setting up libx32gcc1 (1:6.0.1-0ubuntu1) ...
Setting up lib32gomp1 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32gomp1 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32itm1 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32itm1 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32atomic1 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32atomic1 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32asan2 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32asan2 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32stdc++6 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32ubsan0 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32stdc++6 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32ubsan0 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32cilkrts5 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32cilkrts5 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32mpx0 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32quadmath0 (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32quadmath0 (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32gcc-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32gcc-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Setting up gcc-5-multilib (5.4.0-6ubuntu1~16.04.9) ...
Setting up lib32stdc++-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Setting up libx32stdc++-5-dev (5.4.0-6ubuntu1~16.04.9) ...
Setting up g++-5-multilib (5.4.0-6ubuntu1~16.04.9) ...
Setting up gcc-multilib (4:5.3.1-1ubuntu1) ...
Setting up g++-multilib (4:5.3.1-1ubuntu1) ...
Processing triggers for libc-bin (2.23-0ubuntu10) ...
至此更新软件结束。
root@ubuntu:/usr/local/arm/arm-2009q3/bin# ls
arm-none-linux-gnueabi-addr2line arm-none-linux-gnueabi-gprof
在ubuntu16.04中安装arm-none-linux-gnueabi有两种方法,一种是apt-get,安装容易但是不易成功,一种是下载压缩包或安装程序,这里,我用的是下载压缩包,从官网上下载会非常慢,这里提供一个国内云盘下载的链接:下载各种版本。
下载之后我们进行解压:tar -xjf ***.tar.bz2, 后边不写参数就代表解压到当前路径下(我解压到了/usr/mygnueabi/下)。
由于下载的是解压版,不用安装(安装版需要),也不用编译(源码版需要)。我们直接设置环境变量即可。
设置环境变量可以通过:
export PATH=$PATH:/usr/mygnueabi/***your_gnueabi_name/bin
但是这只会在当前的cmd窗口下生效,再打开一个shell还得重新设置,所以我直接更改了~/.bashrc文件,这样就相当于永远生效了:
vim ~/.bashrc
添加一句:
export PATH=/usr/mygnueabi/***your_gnueabi_name/bin:$PATH
保存退出,注意要让bashrc生效,还需要输入:
source ~/.bashrc
当然,~代表当前用户目录,如果想让所有使用你这个linux系统的用户的环境变量都加上交叉工具链路径,也可以更改/etc/profile文件,还是加上export那句话,之后也要运行source命令使之生效.
添加完环境变量之后,我试着编译一个程序,发现还是不对, ./arm-none-linux-gnueabi-gcc -v bash: ./arm-none-linux-gn提示找不到arm-none-linux-gnueabi-gcc,(自己添加的:
bash: ./arm-none-linux-gnueabi-gcc: No such file or directory
输入:
apt-get install lib32ncurses5 lib32z1
apt-get install gcc-multilib g++-multilib
之后再编译程序就可以了。输入arm-none-linux-按tab键,会列出所有的编译器:
第三步:在/usr/local/arm/arm-2009q3/bin# 目录下执行
./arm-none-linux-gnueabi-gcc -v
显示:
root@ubuntu:/usr/local/arm/arm-2009q3/bin# ./arm-none-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/2009q3-respin-linux-lite/src/gcc-4.4/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --disable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2009q3-67' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-ppl=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/julian/2009q3-respin-linux-lite/obj/host-libs-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/2009q3-respin-linux-lite/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)
出现了:gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)
任务完成。
OKOKOK