澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

5平台上安装配置arm,然而交叉编译器还是无法运

增加了意况变量,可是交叉编写翻译器照旧不或者运行的实施方案,情况变量编写翻译器

第一贴出出错提醒新闻:

[email protected]:/usr/local/arm/2.95.3/bin$ arm-linux-
arm-linux-addr2line   arm-linux-gasp        arm-linux-protoize
arm-linux-ar          arm-linux-gcc         arm-linux-ranlib
arm-linux-as          arm-linux-gcj         arm-linux-readelf
arm-linux-c          arm-linux-ld          arm-linux-size
arm-linux-c filt     arm-linux-nm          arm-linux-strings
arm-linux-g          arm-linux-objcopy     arm-linux-strip
arm-linux-g77         arm-linux-objdump     arm-linux-unprotoize
[email protected]:/usr/local/arm/2.95.3/bin$ arm-linux-gcc -v
bash: /usr/local/arm/2.95.3/bin/arm-linux-gcc: 未有那几个文件或目录

1.分明当前系统的位宽:

透过利用uname -a能够博伏贴前linux系统的位宽,本人的kali2.0位宽音信如下:

[email protected]:/usr/local/arm/2.95.3/bin$ uname -a
Linux kali 4.0.0-kali1-amd64 #1 SMP Debian 4.0.4-1 kali2 (2015-06-03) x86_64 GNU/Linux
从以上海重机厂点字x86_64可得本身的系统是64bit的

2.规定交叉编写翻译器的位宽:

  2.1一贯切换目录到交叉编写翻译器的装置目录,自身的接力编写翻译器安装在/usr/local/arm/2.95.3/bin索引下,所以:

[email protected]:~$ cd /usr/local/arm/2.95.3/bin/

  2.2用到file命令查看交叉编写翻译器arm-linux-gcc的文本音讯

    [email protected]:/usr/local/arm/2.95.3/bin$ file arm-linux-gcc

    本身的询问讯息如下:

    [email protected]:/usr/local/arm/2.95.3/bin$ file arm-linux-gcc
    arm-linux-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.0.0, not stripped
  由此就可以知道交叉编写翻译器之所以无法运作的缘故是未曾安装32个人库的原故(在本身的kali2.0种类下,暗中同意没有设置34位库)

3.缓慢解决方案:安装叁九位库

自家kali2.0装置32库的指令如下:

[email protected]:/usr/local/arm/2.95.3/bin$ sudo apt-get install libc6-i386

首先贴出出错提醒消息: [email protected]:/usr/local/arm/2.95.3/bin$ arm-l...

率先贴出出错提醒音讯:

在linux平台上设置好的根底上,起底陈设arm-linux-gcc,使其平常办事

jello@kali:/usr/local/arm/2.95.3/bin$ arm-linux-
arm-linux-addr2line   arm-linux-gasp        arm-linux-protoize
arm-linux-ar          arm-linux-gcc         arm-linux-ranlib
arm-linux-as          arm-linux-gcj         arm-linux-readelf
arm-linux-c          arm-linux-ld          arm-linux-size
arm-linux-c filt     arm-linux-nm          arm-linux-strings
arm-linux-g          arm-linux-objcopy     arm-linux-strip
arm-linux-g77         arm-linux-objdump     arm-linux-unprotoize
jello@kali:/usr/local/arm/2.95.3/bin$ arm-linux-gcc -v
bash: /usr/local/arm/2.95.3/bin/arm-linux-gcc: 未有拾分文件或目录

一,安装前筹划

1.规定当前系统的位宽:

1,下载并安装arm-linux-gcc

arm-linux-gcc-4.2.1的版本在

上边包车型客车那几个是ARM官方给的下载链接 GNU/Linux,点击下载就足以了。可是前缀为arm-二〇一〇.09-51-arm-none-eabi-i686-pc-linux-gnu并不是arm-linux-。。。

在友善之臂官网

2,删除以前设置有旧版本,推行

[root@localhost ~]# rm -rf /opt/arm

3,对新版本arm-linux-gcc-4.4.3实行解压(注意,假若大家加多了-C,那么就能自动解压到/usr/local/arm/那些目录下),不过友善之臂依据下列格局解压,不会解压到/usr/local/arm/目录下的,那是因为友善之臂把/usr/local/arm/目录修改成了 /opt/FriendlyARM/toolschain/,除非自身在把它修改回复

[root@localhost ~]# tar -ivxzf /smbroot/arm-linux-gcc-4.4.3.tar.gz -C /

4,修改配置文件,将arm-linux-gcc增加到情状变量中,因为arm-linux-gcc的下令是在/usr/local/arm/4.4.3/bin下,其目标通过对全局变量绑定使之能力所能达到在随机一个目录下能够施行该命令。

开荒设置文件

[root@localhost opt]# vi /etc/profile

在张开的公文的

# Path manipulation

if [ "$EUID" = "0" ]; then

pathmunge /sbin

pathmunge /usr/sbin

pathmunge /usr/local/sbin

pathmunge /usr/local/arm/4.4.3/bin

fi

抑或在文书末尾增多

export PATH=$PATH:/usr/local/arm/4.4.3/bin

保存退出

5,立刻使新的意况变量生效,不用重启计算机

[root@localhost opt]# source /etc/profile

[root@localhost opt]#

6,检查是还是不是将路线插手到PATH:

[root@localhost opt]# echo $PATH

展现的内容中有/usr/local/arm/4.4.3/bin,表达已经将接力编译器的路径插足PATH。至此,交叉编写翻译碰着设置完毕。

7,测验是不是安装成功

先是,实施find命令查询一下arm-linux-gcc的职分

[root@localhost ~]# find / -name arm-linux-gcc

/opt/arm/toolschain/4.4.3/bin/arm-linux-gcc

[root@localhost ~]#

能够看出arm-linux-gcc的岗位与碰着变量中设定的不二等秘书技一致

接下去查询arm-linux-gcc的本子

[root@localhost bin]# arm-linux-gcc -v

Using built-in specs.

Target: arm-none-linux-gnueabi

Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace

Thread model: posix

gcc version 4.4.3 (ctng-1.6.1)

[root@localhost bin]#

能够观察arm-linux-gcc的版本号,至此,arm-linu-gcc已成功安装。

二,测试

1,在终点中编辑test.c测验程序

[root@localhost ~]# vi test.c

[root@localhost ~]# arm-linux-gcc test.c -o test

/opt/arm/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc .so.6: version `GLIBCXX_3.4.9' not found (required by /opt/arm/toolschain/4.4.3/lib/libppl_c.so.2)

/opt/arm/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: /usr/lib/libstdc .so.6: version `GLIBCXX_3.4.9' not found (required by /opt/arm/toolschain/4.4.3/lib/libppl.so.7)

[root@localhost ~]#

用以下命令查看

[root@localhost ~]# strings /usr/lib/libstdc .so.6|grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

澳门皇冠844网站,GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_FORCE_NEW

[root@localhost ~]#

能够见到libstdc .so.6的最高版是GLIBCXX_3.4.8,而不是GLIBCXX_3.4.9,由此必要对libstdc .so.6进行晋级换代

艺术一,参照那篇文章的做法

直接下载较高版本的库libstdc .so.6.0.10

先删除libstdc .so.6

[root@localhost ~]# rm /usr/lib/libstdc .so.6

rm:是或不是删除 符号链接 “/usr/lib/libstdc .so.6”? y

[root@localhost ~]#

然后将下载的libstdc .so.6.0.10复制到/usr/lib/目录下边

[root@localhost ~]# cp /smbroot/libstdc .so.6.0.10 /usr/lib/

[root@localhost ~]#

再建构符号链接

[root@localhost ~]# ln -s /usr/lib/libstdc .so.6.0.10 /usr/lib/libstdc .so.6

[root@localhost ~]#

检察是或不是替换实现

[root@localhost ~]# strings /usr/lib/libstdc .so.6|grep GLIBCXX

GLIBCXX_3.4

GLIBCXX_3.4.1

GLIBCXX_3.4.2

GLIBCXX_3.4.3

GLIBCXX_3.4.4

GLIBCXX_3.4.5

GLIBCXX_3.4.6

GLIBCXX_3.4.7

GLIBCXX_3.4.8

GLIBCXX_3.4.9

GLIBCXX_3.4.10

GLIBCXX_FORCE_NEW

GLIBCXX_DEBUG_MESSAGE_LENGTH

[root@localhost ~]#

再次测量试验交叉编写翻译是还是不是能用

[root@localhost ~]# arm-linux-gcc test.c -o test

[root@localhost ~]#

编写翻译成功,实行

[root@localhost ~]# ./test

bash: ./test: cannot execute binary file

[root@localhost ~]

艺术二,(参照英特网搜来的办法,还没尝试)

下载最新版本glibc-2.13.tar.gz 包蕴libstdc .so.6的库,

接下来编写翻译安装glibc

wget

下载glibc-linuxthreads

wget

解压

tar -zxvf glibc-2.13.tar.gz

cd glibc-2.13

tar -zxvf ../glibc-linuxthreads-2.3.2.tar.gz

cd ..

./glibc-2.13/configure --prefix=/usr --disable-profile --enable-add-ons --libexecdir=/usr/lib --with-headers=/usr/include

make

make install

注意点:

1、要将glibc-linuxthreads解压到glibc目录下。

2、不能够在glibc当前目录下运维configure。

三、工具使用

1,编写翻译工具arm-linux-gcc

例如arm-linux-gcc hello.c -o hello

2,反汇编工具arm-linux-gcc

例如arm-linux-objdump -D -S hello

3,elf文件查看工具arm-linux-readelf

arm-linux-readelf -a hello (查库全数库)

arm-linux-readelf -d hello (查看动态链接库)

参谋小说

Tekkaman Ninja 博主的篇章在Fedora 下制造 ARM-Linux 交叉编写翻译碰到

李翰林博主的篇章crosstool安装详解

*****************************************************************************

运行hello : ./hello

  bash: ./hello: cannot execute binary file(不能够运营的2进制文件,因为变化的是arm下的2进制文件 );

由此运用uname -a能够赢妥当前linux系统的位宽,本身的kali2.0位宽音信如下:

jello@kali:/usr/local/arm/2.95.3/bin$ uname -a
Linux kali 4.0.0-kali1-amd64 #1 SMP Debian 4.0.4-1 kali2 (2015-06-03) x86_64 GNU/Linux
从上述入眼字x86_64可得本人的连串是64bit的

本文由澳门皇冠金沙网站发布于网络操作,转载请注明出处:5平台上安装配置arm,然而交叉编译器还是无法运