/usr/bin/ld: cannot find -lgcc_s 問題解決小記 /usr/bin/ld: cannot find -lgcc_s 問題解決小記

來源:互聯網
上載者:User

/usr/bin/ld: cannot find -lgcc_s 問題解決小記 - cassvin - 部落格園

/usr/bin/ld: cannot find -lgcc_s 問題解決小記

由於之前用wubi裝的ubuntu並且只給了它10G的硬碟空間,隨著學習的深入這種配備已經無法滿足我的需求了。今天索性把ubuntu從windows上“卸載了”,划了20G -_-的空餘空間準備安裝ubuntu雙系統。雙系統的安裝過程很順利,但接下來Qtopia的編譯就不是很順利了。我根據前面編譯Qtopia時做的記錄文檔對源檔案還有系統變數進行了若干修改,但是實際編譯的過程卻跳出了我之前沒有遇到的問題。

/usr/bin/ld: cannot find -lgcc_s


終端不斷跳出這個錯誤提示。意思是系統找不到需要連結的庫檔案。(該庫檔案為libgcc_s.so)

gcc編譯器我用的是3.4.6的版本。一開始我以為系統找不到3.4版本對應的庫檔案,故開啟/etc/ld.so.conf.d目錄,添加i486-linux-gnu.conf檔案,編輯如下:

# Multiarch support
/usr/lib/gcc/i486-linux-gnu/3.4.6/

#添加庫檔案尋找路徑


終端下輸入指令:ldconfig 以更新緩衝。
但是再次編譯Qtopia發現還是一樣的問題。斷定不是庫檔案目錄缺失的問題。於是我自己到/usr/lib/gcc/i486-linux-gnu/3.4.6/檔案夾下尋找libgcc_s.so檔案。libgcc_s.so是一個連結檔案,連結到對應目錄的libgcc_s.so.1檔案。開啟libgcc_s.so彈出提示連結已損壞。於是一切豁然開朗:檔案未能連結到正常的庫檔案。接下來在終端下輸入:

locate libgcc_s.so.1


以尋找庫檔案實際路徑(註:我電腦裡面同時有4.5版的編譯器,該版連結的也是這一個庫檔案)

彈出:

/lib/i386-linux-gnu/libgcc_s.so.1


於是重新導向3.4版編譯的的libgcc_s.so連結

ln -sf /lib/i386-linux-gnu/libgcc_s.so.1/usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so


為了驗證是否能正確連結到,我在案頭上建立了hello.c檔案並vim之

1 #include <stdio.h>
2 int main(int agrc, char**argv)
3 {
4   printf("Hello World!");
5   return0;
6 }


編譯:gcc -o hello hello.c

無錯誤提示。

運行:./hello

得到我們熟悉的“Hello World!”,呼,問題終於解決了!!! 

馬上切換到qtopia目錄下編譯,過程很順利,曆經半個小時,終於再次見到我們熟悉的Qtopia畫面,欣慰!!^_^ 


(由於無聊,我查看了/usr/lib/gcc/i486-linux-gnu/3.4.6/目錄下所有的連結檔案,發現libstdc++.so這個連結也損壞了,重新導向為:/usr/lib/i386-linux-gnu/libstdc++.so.6:ln -sf /usr/lib/i386-linux-gnu/libstdc++.so.6  /usr/lib/gcc/i486-linux-gnu/3.4.6/libstdc++.so)

由於之前用wubi裝的ubuntu並且只給了它10G的硬碟空間,隨著學習的深入這種配備已經無法滿足我的需求了。今天索性把ubuntu從windows上“卸載了”,划了20G -_-的空餘空間準備安裝ubuntu雙系統。雙系統的安裝過程很順利,但接下來Qtopia的編譯就不是很順利了。我根據前面編譯Qtopia時做的記錄文檔對源檔案還有系統變數進行了若干修改,但是實際編譯的過程卻跳出了我之前沒有遇到的問題。

/usr/bin/ld: cannot find -lgcc_s


終端不斷跳出這個錯誤提示。意思是系統找不到需要連結的庫檔案。(該庫檔案為libgcc_s.so)

gcc編譯器我用的是3.4.6的版本。一開始我以為系統找不到3.4版本對應的庫檔案,故開啟/etc/ld.so.conf.d目錄,添加i486-linux-gnu.conf檔案,編輯如下:

# Multiarch support
/usr/lib/gcc/i486-linux-gnu/3.4.6/

#添加庫檔案尋找路徑


終端下輸入指令:ldconfig 以更新緩衝。
但是再次編譯Qtopia發現還是一樣的問題。斷定不是庫檔案目錄缺失的問題。於是我自己到/usr/lib/gcc/i486-linux-gnu/3.4.6/檔案夾下尋找libgcc_s.so檔案。libgcc_s.so是一個連結檔案,連結到對應目錄的libgcc_s.so.1檔案。開啟libgcc_s.so彈出提示連結已損壞。於是一切豁然開朗:檔案未能連結到正常的庫檔案。接下來在終端下輸入:

locate libgcc_s.so.1


以尋找庫檔案實際路徑(註:我電腦裡面同時有4.5版的編譯器,該版連結的也是這一個庫檔案)

彈出:

/lib/i386-linux-gnu/libgcc_s.so.1


於是重新導向3.4版編譯的的libgcc_s.so連結

ln -sf /lib/i386-linux-gnu/libgcc_s.so.1/usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so


為了驗證是否能正確連結到,我在案頭上建立了hello.c檔案並vim之

1 #include <stdio.h>
2 int main(int agrc, char**argv)
3 {
4   printf("Hello World!");
5   return0;
6 }


編譯:gcc -o hello hello.c

無錯誤提示。

運行:./hello

得到我們熟悉的“Hello World!”,呼,問題終於解決了!!! 

馬上切換到qtopia目錄下編譯,過程很順利,曆經半個小時,終於再次見到我們熟悉的Qtopia畫面,欣慰!!^_^ 


(由於無聊,我查看了/usr/lib/gcc/i486-linux-gnu/3.4.6/目錄下所有的連結檔案,發現libstdc++.so這個連結也損壞了,重新導向為:/usr/lib/i386-linux-gnu/libstdc++.so.6:ln -sf /usr/lib/i386-linux-gnu/libstdc++.so.6  /usr/lib/gcc/i486-linux-gnu/3.4.6/libstdc++.so)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.