作者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