就可以执行。是不是和操作系统有关,我的操作系统是uclinux
6 个解决方案
#1
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=55934&start=15
我也正在编译blob,遇到的编译问题是一样的。这里说说的我的做法(使用环境RedHat 9):
1. 编辑文件 configure ,把所有arm-linux 改为arm-elf; 在580行处(“ac_ext=c”之前)插入 LDFLAGS=-elf2flt ,保存文件。
2.运行命令./configure --with-board=mba-44b0 --with-linux-prefix=/usr/local/src/uClinux-dist/linux-2.4.x (这是我的uclinux目录) --host=arm-elf
结果:LDFLAGS = -elf2flt -static -nostdlib
3.运行make
4.编译到arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start出现错误(与你的一样):
arm-elf-objcopy:blob-start-elf32:File format not recognized
5.分析blob-start-elf32编译的命令
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc
-elf2flt -static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
使用了-elf2flt 选项,把blob-start-elf32编译成flat格式。
6.到目录 blob/src/blob目录下直接执行编译命令(把-elf2flt去掉)
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-ointer -fno-builtin -mapcs-32 -nostdinc
-static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
再执行一次
arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start
结果顺利编译通过
显然 arm-elf-objcopy 中 blob-start-elf32 必须为elf格式
其后的blob-rest-elf32 ,blob-chain-elf32编译也应该是elf格式。
7.结论:所以编译源文件要使用 -elf2flt 才能编译通过,但编译连接 blob-start-elf32 又不能使用-elf2flt开关
8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
9.本人一直在windows下编写程序,对makefile 的编辑不是很熟悉,虽然知道错误的原因, 但不知怎样修改makefile ,此事很急,请各位大侠赐教!
问题终于解决了!换个编译器,到http://www.lomx.net/cn/lom_arm9_tooltrain.htm
下载一个编译器吧
应该是跟你的一样子的
看看吧
我也正在编译blob,遇到的编译问题是一样的。这里说说的我的做法(使用环境RedHat 9):
1. 编辑文件 configure ,把所有arm-linux 改为arm-elf; 在580行处(“ac_ext=c”之前)插入 LDFLAGS=-elf2flt ,保存文件。
2.运行命令./configure --with-board=mba-44b0 --with-linux-prefix=/usr/local/src/uClinux-dist/linux-2.4.x (这是我的uclinux目录) --host=arm-elf
结果:LDFLAGS = -elf2flt -static -nostdlib
3.运行make
4.编译到arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start出现错误(与你的一样):
arm-elf-objcopy:blob-start-elf32:File format not recognized
5.分析blob-start-elf32编译的命令
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc
-elf2flt -static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
使用了-elf2flt 选项,把blob-start-elf32编译成flat格式。
6.到目录 blob/src/blob目录下直接执行编译命令(把-elf2flt去掉)
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-ointer -fno-builtin -mapcs-32 -nostdinc
-static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
再执行一次
arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start
结果顺利编译通过
显然 arm-elf-objcopy 中 blob-start-elf32 必须为elf格式
其后的blob-rest-elf32 ,blob-chain-elf32编译也应该是elf格式。
7.结论:所以编译源文件要使用 -elf2flt 才能编译通过,但编译连接 blob-start-elf32 又不能使用-elf2flt开关
8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
9.本人一直在windows下编写程序,对makefile 的编辑不是很熟悉,虽然知道错误的原因, 但不知怎样修改makefile ,此事很急,请各位大侠赐教!
问题终于解决了!换个编译器,到http://www.lomx.net/cn/lom_arm9_tooltrain.htm
下载一个编译器吧
应该是跟你的一样子的
看看吧
#2
我的问题主要是在移植pppd的时候,用make CC=arm-linux-gcc 生成的是elf文件,在我的目标板(uclinux)是执行不了的,我需要把它转换为flat格式
于是我用make CC=arm-elf-gcc -Wl,-elf2flt,但是编译出错了
于是我用make CC=arm-elf-gcc -Wl,-elf2flt,但是编译出错了
#3
请问,这个使用arm-elf-gcc 编译 BLOB (44B0X) 的问题到底是如何解决的啊? 我也是碰到了一摸一样的问题,Linux内核是用uClinux. 也尝试下载了上面提到的ARM-LINUX编译器, 实际上没有解决问题,至少看起来来编译器针对的CPU CORE 都不一样。
解决了问题的那位同学能否详细说说你的步骤和方法。 谢谢了。
解决了问题的那位同学能否详细说说你的步骤和方法。 谢谢了。
#4
我倒是很顺利。。。没遇到过。。。
#5
学习
#6
但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
说明你改错了地方。这个makefile是自动生成的,根据相关的配置文件,要改也的在源头去改。
说明你改错了地方。这个makefile是自动生成的,根据相关的配置文件,要改也的在源头去改。
#1
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=55934&start=15
我也正在编译blob,遇到的编译问题是一样的。这里说说的我的做法(使用环境RedHat 9):
1. 编辑文件 configure ,把所有arm-linux 改为arm-elf; 在580行处(“ac_ext=c”之前)插入 LDFLAGS=-elf2flt ,保存文件。
2.运行命令./configure --with-board=mba-44b0 --with-linux-prefix=/usr/local/src/uClinux-dist/linux-2.4.x (这是我的uclinux目录) --host=arm-elf
结果:LDFLAGS = -elf2flt -static -nostdlib
3.运行make
4.编译到arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start出现错误(与你的一样):
arm-elf-objcopy:blob-start-elf32:File format not recognized
5.分析blob-start-elf32编译的命令
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc
-elf2flt -static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
使用了-elf2flt 选项,把blob-start-elf32编译成flat格式。
6.到目录 blob/src/blob目录下直接执行编译命令(把-elf2flt去掉)
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-ointer -fno-builtin -mapcs-32 -nostdinc
-static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
再执行一次
arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start
结果顺利编译通过
显然 arm-elf-objcopy 中 blob-start-elf32 必须为elf格式
其后的blob-rest-elf32 ,blob-chain-elf32编译也应该是elf格式。
7.结论:所以编译源文件要使用 -elf2flt 才能编译通过,但编译连接 blob-start-elf32 又不能使用-elf2flt开关
8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
9.本人一直在windows下编写程序,对makefile 的编辑不是很熟悉,虽然知道错误的原因, 但不知怎样修改makefile ,此事很急,请各位大侠赐教!
问题终于解决了!换个编译器,到http://www.lomx.net/cn/lom_arm9_tooltrain.htm
下载一个编译器吧
应该是跟你的一样子的
看看吧
我也正在编译blob,遇到的编译问题是一样的。这里说说的我的做法(使用环境RedHat 9):
1. 编辑文件 configure ,把所有arm-linux 改为arm-elf; 在580行处(“ac_ext=c”之前)插入 LDFLAGS=-elf2flt ,保存文件。
2.运行命令./configure --with-board=mba-44b0 --with-linux-prefix=/usr/local/src/uClinux-dist/linux-2.4.x (这是我的uclinux目录) --host=arm-elf
结果:LDFLAGS = -elf2flt -static -nostdlib
3.运行make
4.编译到arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start出现错误(与你的一样):
arm-elf-objcopy:blob-start-elf32:File format not recognized
5.分析blob-start-elf32编译的命令
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-pointer -fno-builtin -mapcs-32 -nostdinc
-elf2flt -static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
使用了-elf2flt 选项,把blob-start-elf32编译成flat格式。
6.到目录 blob/src/blob目录下直接执行编译命令(把-elf2flt去掉)
arm-elf-gcc -Os -I/usr/local/src/uClinux-dist/linux-2.4.x/include
-Wall -march=armv4 -mtune=strongarm1100
-fomit-frame-ointer -fno-builtin -mapcs-32 -nostdinc
-static -nostdlib -o blob-start-elf32
-Wl,-T,./start-ld-script start.o ledasm.o memsetup-s3c44b0.o -lgcc
再执行一次
arm-elf-objcopy -O binary -R .note .comment -S blob-start-elf32 blob-start
结果顺利编译通过
显然 arm-elf-objcopy 中 blob-start-elf32 必须为elf格式
其后的blob-rest-elf32 ,blob-chain-elf32编译也应该是elf格式。
7.结论:所以编译源文件要使用 -elf2flt 才能编译通过,但编译连接 blob-start-elf32 又不能使用-elf2flt开关
8.直接修改blob/src/blob的Makefile ,但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
9.本人一直在windows下编写程序,对makefile 的编辑不是很熟悉,虽然知道错误的原因, 但不知怎样修改makefile ,此事很急,请各位大侠赐教!
问题终于解决了!换个编译器,到http://www.lomx.net/cn/lom_arm9_tooltrain.htm
下载一个编译器吧
应该是跟你的一样子的
看看吧
#2
我的问题主要是在移植pppd的时候,用make CC=arm-linux-gcc 生成的是elf文件,在我的目标板(uclinux)是执行不了的,我需要把它转换为flat格式
于是我用make CC=arm-elf-gcc -Wl,-elf2flt,但是编译出错了
于是我用make CC=arm-elf-gcc -Wl,-elf2flt,但是编译出错了
#3
请问,这个使用arm-elf-gcc 编译 BLOB (44B0X) 的问题到底是如何解决的啊? 我也是碰到了一摸一样的问题,Linux内核是用uClinux. 也尝试下载了上面提到的ARM-LINUX编译器, 实际上没有解决问题,至少看起来来编译器针对的CPU CORE 都不一样。
解决了问题的那位同学能否详细说说你的步骤和方法。 谢谢了。
解决了问题的那位同学能否详细说说你的步骤和方法。 谢谢了。
#4
我倒是很顺利。。。没遇到过。。。
#5
学习
#6
但运行make 后,此Makefile又回复原样,实在没有办法,不知道如何修改。
说明你改错了地方。这个makefile是自动生成的,根据相关的配置文件,要改也的在源头去改。
说明你改错了地方。这个makefile是自动生成的,根据相关的配置文件,要改也的在源头去改。