fedora上編譯安裝開源軟體須注意的問題

來源:互聯網
上載者:User

fedora上編譯安裝開源軟體須注意的問題 下載康奈爾大學的一個開源系統,準備部署在fedora 15上。可是程式包和庫檔案不完整,安裝說明寫的也難以理解。  www.2cto.com  1、安裝缺失的包      按照說明進行configure和make的時候,就提示找不到庫檔案。這些庫檔案可以通過安裝軟體包獲得,然後放到相應的目錄下。利用yum install(yum remove ,yum list installed)可以直接安裝所需軟體包,而且能輕易的解決包依賴問題;或者可以使用rpm -ivh(rpm -e )安裝下載的軟體包。      2.下載源碼自己編譯缺失的包      然而,使用yum只能安裝最新版本的軟體包,對於安裝較低版本的軟體似乎無能為力。有的時候即使rpm安裝也不行,因為安裝的是人家 編譯好的二進位檔案,很可能是由較高版本的編譯器gcc編譯的;而你要修改和編譯的開源系統很可能適用較低版本的編譯器,這樣在重新編譯開源系統的時候就 會出現問題。所以,這種情況最好下載所需軟體包的原始碼,使用你所需的編譯器自己編譯出所需的庫檔案,這次需要libxerces-c.so.27就遇到了這個問題。      3. gcc降級      這次安裝編譯這個開源系統,首先就遇到了一個gcc降級的問題,要使用gcc3.3而fedora 15上是gcc4。於是下載並編譯gcc3.3,然而編譯gcc3.3又需要gcc4 ? 反正是編譯不成功,好像存在一個gcc4 compat相容包,安裝這個以後,終於編譯好了gcc3.3,然後在/usr/bin裡讓gcc連結gcc 3.3而不是gcc4。這樣gcc才算好了。過程中,還遇到一個降級的問題,make的時候報“libstdc++.so.6: undefined reference to `_Unwind_GetIPInfo@GCC_4.2.0'”      這應該也是連結的庫版本太高的問題;但makefile好像又必須要so.6這個名字的檔案,無奈之下,還是用軟串連——將libstdc++.so.6連結到libstdc++.so.5,也就是實際上還是用gcc3.3編譯出來的庫。 libstdc++.so.5 -> libstdc++.so.6gcc -> /opt/gcc33/bin/gcc軟串連命令 ln -s 目標檔案 串連檔案 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.