歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux:fedora編譯開源軟件須注意三問題

Linux:fedora編譯開源軟件須注意三問題

日期:2017/2/25 10:35:40   编辑: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