歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> fedora上編譯安裝開源軟件須注意的問題

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

日期:2017/2/27 16:03:15   编辑:Linux教程
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.6
gcc -> /opt/gcc33/bin/gcc
軟連接命令 ln -s 目標文件 連接文件
Copyright © Linux教程網 All Rights Reserved