2012-05-27 19 views
0
編譯錯誤

我寫了使用海合會

gcc -o pr prc.c 

編譯它C.After我的節目,我得到了下面

/usr/bin/ld:cannot find -lc 
collect2: ld returned 1 exit status 
+0

'ld'是鏈接,似乎無法找到'-lc'。不知道那是什麼,但 –

+1

你可能沒有安裝開發包像'libc6的-dev',你應該用'GCC編譯-Wall -g pr.c -o pr' –

+2

@TonyTheLion:它試圖反對的libc鏈接,並且由於某種原因無法找到它。 –

回答

3

事物的鏈接(ld)無法找到庫文件標準C庫的libc.{a|so}。請參閱ld man page以瞭解該庫的選項(並且lc命令行選項爲ld)。引用:

ld -o <output> /lib/crt0.o hello.o -lc 

This tells ld to produce a file called output as the result of linking 
the file "/lib/crt0.o" with "hello.o" and the library "libc.a" 

您應該檢查以確保這些文件實際上從系統中丟失。在我的Ubuntu 10.04 LTS系統:

~ [88] locate libc.so 
/lib/libc.so.6 
/lib/tls/i686/cmov/libc.so.6 
/usr/lib/libc.so 

~ [89] locate libc.a 
/usr/lib/libc.a 
/usr/lib/xen/libc.a 

你如何安裝這個缺少庫會根據你的發行版。使用您的軟件包管理搜索libc。否則,您可能需要考慮重新安裝gcc

+0

downvote(S)*無*號解釋對誰都沒有好處。隨時指出錯誤,我會很樂意改進/糾正我的答案。 – Levon

+0

那麼,實際存在的問題是,我無法弄清楚如何安裝這個Libc的東西。 我使用Ubuntu終極2.9 – ejjyrex

+0

@ejjy我更新我的回答,希望它有助於你 – Levon

3

-lc是libc的縮寫,它是C運行時庫。你的* nix發行版是什麼,你需要通過適當的安裝程序來安裝glibc和glibc-common。

man ld並應給出錯誤信息的洞察力。類似這樣的消息表明鏈接器正在尋找缺少的庫。這裏庫的名稱是libc(用lib替換l)。