作者stevenlin08 (stevens)
看板CSSE
标题Re: [问题] 使用gnu ld问题
时间Wed May 2 16:00:33 2012
※ 引述《stevenlin08 (stevens)》之铭言:
: 关於gnu ld的使用
: 为何在使用ld时,会出现
: undefined reference to 'puts'
: 我知是因为linker时,找不到其library.
: 它的预设library不是都在/usr/lib中.
: 所以我多加入-L/usr/lib,但还是不行.
: 因为直接使用gcc 可以,
: 请问我要怎麽做可以知道它在gcc到底做了什麽设定?
: 像是:
: $gcc -c main.c -o main.o
: $ld main.o -e main.o -o ab
: $gcc main.o -o abc
谢谢大家的回应.
我之所以,以gcc -c + ld
是为了想一步步地了解其linker'loader'libary
而想要了解在下gcc 时它的default make file内容.
目前,是先用
0.
使用gcc -v main.c,来看其相关的
1.
$gcc -c main.c -o main.o
2.
$ld main.o -e main -lc -m elf_i386 -I /lib/ld-linux.so.2
(-lc 为printf的libary, ld-linux.so.2则为在loader时需需需的lib)
3.虽然,可以成功的linker了.
但在其程序行时,却又出现了segmation fault.
因为其在gcc -v中有太多的设定.
不知有那些必要的.或是该如何来修正其错误.
4.版本及内容OA
gcc vesion:gcc(ubuntu/linaro 4.5.2-8ubuntu4) 4.5.2
main.c
#include <stdio.h>
int main()
{
printf("hello world");
return 0;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.205.36