1
,我在我的64位的Ubuntu嘗試這是我的運行時庫的一些符號:GCC鏈接手動失敗:找不到
首先我有一個簡單的程序
$ cat test.c
int f(int x){
int i=(x/42);
return i;
}
int main(){
return 0;
}
然後我手動指定它是如何鏈接:
$ gcc test.c -nostdlib /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crtn.o
我得到了一些錯誤:
/usr/lib/x86_64-linux-gnu/crt1.o:In function ‘_start’中:
(.text+0x12):unresolved reference to ‘__libc_csu_fini’
/usr/lib/x86_64-linux-gnu/crt1.o:In function ‘_start’:
(.text+0x19): unresolved reference to ‘__libc_csu_init’
/usr/lib/x86_64-linux-gnu/crt1.o:In function ‘_start’:
(.text+0x25): unresolved reference to ‘__libc_start_main’
collect2: error: ld returned 1 exit status
我想知道gcc如何處理所有必要的目標文件並嘗試手動完成。如何解決它?謝謝。