risc-v中文社区

 找回密码
 立即注册
查看: 1103|回复: 0

gcc的-nostdlib选项

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2022-9-22 08:33:58 | 显示全部楼层 |阅读模式
写了一个startup.s程序,目的就是执行时调用exit退出,代码如下:
.globl _start
_start:
        mov r0,#0
        swi 0x00900001
.end

在编译时出现:
arm-none-eabi-gcc.exe startup.s -o mainhasstdlib -g
C:\Users\joe\AppData\Local\Temp\ccM6cjGa.o: In function `_start':
H:\TMP\ftpserverroot\arm9bare/startup.s:3: multiple definition of `_start'
e:/program files (x86)/gnu tools arm embedded/5.3 2016q1/bin/../lib/gcc/arm-none
-eabi/5.3.1/../../../../arm-none-eabi/lib/crt0.o.text+0x0): first defined here

e:/program files (x86)/gnu tools arm embedded/5.3 2016q1/bin/../lib/gcc/arm-none
-eabi/5.3.1/../../../../arm-none-eabi/lib\libg.a(lib_a-exit.o): In function `exi
t':
exit.c.text.exit+0x2c): undefined reference to `_exit'
e:/program files (x86)/gnu tools arm embedded/5.3 2016q1/bin/../lib/gcc/arm-none
-eabi/5.3.1/../../../../arm-none-eabi/lib/crt0.o: In function `_start':
(.text+0xec): undefined reference to `main'
collect2.exe: error: ld returned 1 exit status
所以,如果不想用到C运行时库的启动代码crt1,crti,crtend,crtn等,则:arm-none-eabi-gcc.exe startup.s -o mainnostdlib -nostdlib -g

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-25 13:59 , Processed in 0.013698 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表