自己制作了一个交叉编译工具
http://blog.chinaunix.net/uid-28708203-id-3556041.html,但是报错:
电脑是: 64位
OS :ubuntu 12.04 64 bit
crosstool-ng :版本 crosstool-ng-1.9.3
开发板是 :s3c2440 , arm920t
配置按照这个博客配置的:http://blog.chinaunix.net/uid-20543672-id-94369.html
成功编译出来之后,开始提示找不到cc1我从libexec/gcc/arm-unknown-linux-gnueabi/4.3.2 这个目录找到了。
现在报这个错误:
steven@ubuntu:/usr/bin$ arm-unknown-linux-gnueabi-gcc ~/hello.c -o hello
Assembler messages:
Fatal error: invalid -march= option: `armv4t'
我配置的时候已经配置好了,就是armv4t.这是怎么个回事。
steven@ubuntu:/usr/bin$ file arm-unknown-linux-gnueabi-gcc
arm-unknown-linux-gnueabi-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xfa65732584666bd7829e63f5da98cb40bd33e1fa, stripped
|
=================================================================================================
错误分析:
我当时简单的吧所有编译出的二进制文件拷贝到了/usr/bin目录下,就一直报这个错误。一直认为是自己编错了。重新实验了很多次都不行。
解压了一个现成的32位的,拷贝到/usr/bin目录下,运行提示好不到文件,错误原因是:
http://blog.chinaunix.net/uid-28708203-id-3568993.html
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
解决了这个问题,结果发现跟自己编译的工具报几乎一样的错误。
=================================================================================================
无意间,在工具链所在的路径下运行。./arm-unknown-linux-gnueabi-gcc hello.c
发现能编译链接通过。
由此的出应该还是环境没配置好。
可见PATH路径给出的不仅仅是查找二进制文件的 的路径,还有其他的东西,至于是什么东西,他娘地再说吧。
================================================================================================
这里猜测报错的原因应该是 编译gcc使用的还是我们的交叉工具,而汇编的时候,应该就是使用的系统自带的 汇编器,而不是编译出的交叉汇编器。使用
目标文件为X86-64的汇编器,编译 arm-linux-gcc编译器编译出的结果文件,从而报错。这里只是猜想,不知道是不是。
阅读(2154) | 评论(0) | 转发(0) |