
.section .text.globl _start_start:
如果我使用以下命令创建了可执行文件:
as 1.s -o 1.old 1.o -o 1
GNU汇编程序是否会将自己的入口点添加到我的可执行文件中,该可执行文件调用_start或将_start作为实际的入口点?
有关更多详细信息,请参见此question.
解决方法 包含另一个问题中提到的启动代码的文件crt0.o(或crt1.o或者此文件被调用)也是用汇编语言编写的.所以linker(“ld”)所做的就是搜索所有目标文件(实际上都是使用“as”创建的)为名为“_start”的符号,该符号成为入口点.
在使用“ld”时,您当然可以自由地将crt0.o添加到汇编程序编写的程序中.但是在这种情况下,你不能在汇编程序文件中将你的符号命名为“_start”,而是命名为“main”:
.globl main.textmain: ...
否则“ld”将打印一条错误消息,因为它会找到两个名为“_start”的符号,并且它不知道哪一个是入口点!
总结以上是内存溢出为你收集整理的linux – GNU汇编程序是否添加了自己的入口点?全部内容,希望文章能够帮你解决linux – GNU汇编程序是否添加了自己的入口点?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)