Error:has both ordered [`.ARM.exidx' in main.o] and unordered [`.ARM.extab' in main.o] sections
来源:互联网 发布:西门子logo编程软件 编辑:程序博客网 时间:2024/06/05 19:50
ARM-LINUX-GCC -NOSTDLIB 2012-03-30 13:58:51
分类: 系统运维
在韦东山的mmu实验的 Makefile 中出现:
arm-linux-ld: firtst has both ordered [`.ARM.exidx' in init.o] and unordered [`.ARM.extab' in init.o] sections
arm-linux-ld: final link failed: Bad value
此常见的错误的原因是:
编译时加上选项(-nostdlib)
-nostdlib
不连接系统标准启动文件和标准库文件,只把指定的文件传递给连接器。这个选项常用于编译内核、bootloader等程序,它们不需要启动文件、标准库文件。
C语言程序执行的第一条指令。并不是main函数。生成一个C程序的可执行文件时编译器通常会在我们的代码上加上几个被称为启动文件的代crt1.o,crti.o,crtend.o,crtn.o等,他们是标准库文件。这些代码设置C程序的堆栈等,然后调用main函数。他们依赖于操作系统,在裸板上无法执行,所以我们自己写一个。
所以,我们自己写的*.S汇编文件就是一个启动文件,它设置好堆栈后调用main函数。因此,我们不需要系统自带的启动文件。
因此 我们只需修改其Makefile文件:
%.o:%.c
arm-linux-gcc -Wall -nostdlib -O2 -c -o $@ $<
%.o:%.S
arm-linux-gcc -Wall -nostdlib -O2 -c -o $@ $<
再次make 就ok啦。
分类: 系统运维
在韦东山的mmu实验的 Makefile 中出现:
arm-linux-ld: firtst has both ordered [`.ARM.exidx' in init.o] and unordered [`.ARM.extab' in init.o] sections
arm-linux-ld: final link failed: Bad value
此常见的错误的原因是:
编译时加上选项(-nostdlib)
-nostdlib
不连接系统标准启动文件和标准库文件,只把指定的文件传递给连接器。这个选项常用于编译内核、bootloader等程序,它们不需要启动文件、标准库文件。
C语言程序执行的第一条指令。并不是main函数。生成一个C程序的可执行文件时编译器通常会在我们的代码上加上几个被称为启动文件的代crt1.o,crti.o,crtend.o,crtn.o等,他们是标准库文件。这些代码设置C程序的堆栈等,然后调用main函数。他们依赖于操作系统,在裸板上无法执行,所以我们自己写一个。
所以,我们自己写的*.S汇编文件就是一个启动文件,它设置好堆栈后调用main函数。因此,我们不需要系统自带的启动文件。
因此 我们只需修改其Makefile文件:
%.o:%.c
arm-linux-gcc -Wall -nostdlib -O2 -c -o $@ $<
%.o:%.S
arm-linux-gcc -Wall -nostdlib -O2 -c -o $@ $<
再次make 就ok啦。
0 0
- Error:has both ordered [`.ARM.exidx' in main.o] and unordered [`.ARM.extab' in main.o] sections
- duplicate symbol _main in main-E7AA7CFE43AF78AD.o and main-A65C0EC8608BD086.o for architecture i386
- error: main.o: Relocations in generic ELF (EM: 3)解决办法
- error: main.o: Relocations in generic ELF (EM: 3)解决办法
- /tmp/cc2v1c0x.o: In function `main':
- Kei编译出错:Symbol array mutiply difined (in main.o and crc.o),
- led_on_c.o:(.ARM.exidx+0x0): undefined reference to `__aeabi_unwind_cpp_pr0'
- crtbegin_dynamic.o: in function _start:crtbrand.c(.text+0x78): error: undefined reference to 'main
- .ARM.exidx
- Error: L6200E: Symbol B_DisCnctRelayTime multiply defined (by cdma_gps_hc.o and main.o).
- .\Obj\main.axf: Error: L6406E: No space in execution regions with .ANY selector matching sin_i.o(.co
- keil中结构体用法及Error: L6200E: Symbol Track multiply defined (by arithmetic.o and main.o).解决
- Undefined symbols for architecture x86_64:“_glutInit”, referenced from:_main in main.o / Netbeans on
- Ubuntu GCC 编译C++ 文件出错。main.o: In function `__static_initialization_and_destruction_0':
- xcode编译警告: XXX has different visibility (default) in lib.a and (hidden) in xx.o
- Main must return int error in C++ ?
- SBL-GDB-00004: Error in Main function
- SBL-GDB-00004: Error in Main function
- Android 程序的的"现场保护"
- yii2-rules条件验证应用
- 在用Spring开发细节注意点 静态资源文件
- 史上最全Python数据分析学习路径图
- 【数据库】【mysql】 之 字符串处理
- Error:has both ordered [`.ARM.exidx' in main.o] and unordered [`.ARM.extab' in main.o] sections
- 结合android ,讲述iOS UITableView和UITableViewCell的用法
- 服装设计爱好者的选择-优定制
- STM32之CAN---TTCAN模式浅析
- Python 标准库一览(Python进阶学习)
- 【JavaScript】正则表达式
- 为什么说编程是有史以来最好的工作
- 分享TXT格式的电子书制作方法
- java连接MySQL版本的电话本管理系统