当前位置: 技术问答>linux和unix
请教 ld(链接器)的用法
来源: 互联网 发布时间:2015-09-01
本文导语: ld -o p main.o a.o b.o 链接 .o 文件时提示找不到Symbol _start ,好像要用到crt0.o文件。但是redhat 上好像没有这个文件,请问各位大虾如何是好。(我得手写链接脚本) 谢谢 | 做如下操作 1 在...
ld -o p main.o a.o b.o
链接 .o 文件时提示找不到Symbol _start ,好像要用到crt0.o文件。但是redhat 上好像没有这个文件,请问各位大虾如何是好。(我得手写链接脚本) 谢谢
链接 .o 文件时提示找不到Symbol _start ,好像要用到crt0.o文件。但是redhat 上好像没有这个文件,请问各位大虾如何是好。(我得手写链接脚本) 谢谢
|
做如下操作
1
在你的系统上找一个编译好的可执行的文件A
ld A
看输出 用的是什么ld.so*
如果为ld-linux.so.1不用处理,如果不同记录下 C
2
找一个可编译过的文件B.c
把里面的main改成main1
gcc B.c
会提示你ctr?.o找不到记录下路径及文件名 D.N (D路径 N文件名)
3
main.o 里面有main
如果你的main不需要参数
可以
ld -dynamic-linker C (非ld-linux.so.1) -o p main.o -lc -e main
如果需要参数
ld -dynamic-linker C (非ld-linux.so.1) -o p main.o D.N D.ctri.o D.ctrn.o -lc
1
在你的系统上找一个编译好的可执行的文件A
ld A
看输出 用的是什么ld.so*
如果为ld-linux.so.1不用处理,如果不同记录下 C
2
找一个可编译过的文件B.c
把里面的main改成main1
gcc B.c
会提示你ctr?.o找不到记录下路径及文件名 D.N (D路径 N文件名)
3
main.o 里面有main
如果你的main不需要参数
可以
ld -dynamic-linker C (非ld-linux.so.1) -o p main.o -lc -e main
如果需要参数
ld -dynamic-linker C (非ld-linux.so.1) -o p main.o D.N D.ctri.o D.ctrn.o -lc