天天看點

在Linux下使用gcc編譯mesa檔案報undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line兩個錯誤的解決方案

在Linux系統下使用gcc編譯用C語言寫的mesa的示例程式。

環境:Ubuntu Server 18.04.1

在Ubuntu下安裝好mesa所需的庫檔案,将目标檔案從github上克隆下來之後編譯。

在Linux下使用gcc編譯mesa檔案報undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line兩個錯誤的解決方案

以上截取的是用gcc編譯目标檔案和傳參的介紹:

gcc:源程式将用gcc編譯器進行編譯;

osdemo,c:将要被編譯的源程式;

-lOSMesa:連結OSMesa庫;

-lGLU:連結GLU庫;

-lGL:連結GL庫;

-o:指定目标名稱;

osdemo:編譯後生成的檔案名。

執行編譯後報錯

在Linux下使用gcc編譯mesa檔案報undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line兩個錯誤的解決方案

報錯資訊第一行說是在源程式中有個sin函數沒有定義;報錯資訊第二行說是缺少libm.so這個檔案。

綜上所述,應連結libm庫檔案,是以正确的指令應該是這樣子的:

  

問題解決!

如果以後碰到像缺少libXXX.so檔案,就指的是缺少XXX庫檔案,是以添加時直接用 gcc -lXXX 指令添加即可。

作者:Zoctopus_Zhang

    出處:http://www.cnblogs.com/OctoptusLian/

    版權聲明:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明。

    特此聲明:所有評論和私信都會在第一時間回複。也歡迎園子裡和園子外的大大們指正錯誤,共同進步。或者直接私信我 (^∀^)

    聲援部落客:如果您覺得文章對您有幫助,可以點選文章右下角【推薦】一下。您的鼓勵是作者堅持原創和持續寫作的最大動力!

在Linux下使用gcc編譯mesa檔案報undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line兩個錯誤的解決方案

您的資助是我最大的動力!

金額随意,歡迎來賞!

在Linux下使用gcc編譯mesa檔案報undefined reference to symbol 'sin@@GLIBC_2.2.5和DSO missing from command line兩個錯誤的解決方案

如果,您認為閱讀這篇部落格讓您有些收獲,不妨點選一下右下角的【推薦】按鈕。

如果,您希望更容易地發現我的新部落格,不妨點選一下綠色通道的【關注我】。

如果,想給予我更多的鼓勵,求打

本部落格的所有打賞均将用于部落客女朋友的化妝品購買以及養肥計劃O(∩_∩)O。我是【~不會飛的章魚~】!

聯系或打賞部落客【~不會飛的章魚~】!https://www.cnblogs.com/OctoptusLian/

繼續閱讀