2017-02-11 8 views
1

の一部の記号を見つけることができません:私は簡単なプログラムGCC:私は私の64ビットUbuntuの上でこれをしようとしていた私のランタイムライブラリ

$ cat test.c 
int f(int x){ 
     int i=(x/42); 
     return i; 
} 
int main(){ 
     return 0; 
} 

を持って

まずそれから私は、手動で指定しますリンクされている方法:

/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 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 

は、私はいくつかのエラーを得ました

私は、gccが必要なオブジェクトファイルをどのように取り扱っているかを見て、手動でそれを試みようとしていました。それを修正するには?ありがとう。

答えて

1

どのように修正するのですか?

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 -lc 

クマを念頭に置いて、あなたが本当にが何かをリンクしたい場合は、「手動」、あなたはldでそれを行うだろうことを、:あなたはlibcをリンクする必要があるので、

あなたは、libcシンボルが欠落していますnot gcc

関連する問題