如何在64位的Linux中執行32位的應用程式

2022-08-20 02:33:07 字數 1200 閱讀 4209

大部分linux發行套件都有針對x86_64處理器的版本。比較典型的x86_64的處理器有adm athlon ii和英特爾xeon。因為這些linux發行套件都有自己專用的軟體源,這些軟體源會為提供所有它所支援的應用軟體的二進位製包。如果你滿足於linux的安裝方式,你可能不會需要執行32位的程式。

一些linux商業軟體,尤其是遊戲,只提供32的版本。因為某些特殊的理由,你可能需要配置你的電腦來執行32位的軟體。

安裝32位的支援庫

因為x86_64處理器是為x86技術涉及,所以它也是支援32位程式的。在linux裡,你所需要做的就是為這些軟體安裝必要的軟體庫。幸運的是,大部分linux發行版本已經將這些打包好了。比方在ubuntu裡,這個包就叫做ia32-libs。為了安裝它,你可以開啟乙個終端,然後輸入下面的內容:

sudo apt-get install ia32-libs

在kubuntu中,你也可以通過synaptic和kpackagekit在圖形介面下安裝。一旦安裝了之後,像遊戲之類的軟體就不再需要更多的配置。

圖形問題

當你在乙個64位的環境中執行32位的軟體時,ubuntu仍然會去尋找預設的gtk引擎。這樣導致乙個wrong elf class的報錯。這種情況在你執行某些特定的軟體的時候特別惱人,比方說chrome,一款新的谷歌瀏覽器開源版本。ubuntu確實已經將32位版本的gtk引擎安裝在了

/usr/lib32/gtk-2.0,但是我所使用的gtk專案並沒有在這個位置找到。快速的解決方法如下:

1、為你現在用的主題找到32位包。比方說我,我查詢了ubuntu packages

3、為主題找到庫檔案

4、將庫拷貝到lib32路徑:

sudo cp ~/download-directory/usr/lib/gtk-2.0/2.10.0/engines/libqtcurve.so /usr/lib32/gtk-2.0/2.10.0/engines/

比方說chrome,它的需要可以設定在啟動指令碼裡: /user/lib32/gtk-2.0如果程式的啟動指令碼在你執行的時候沒有去看,而是去尋找 /user.lib/gtk-2.0,你可能需要修改啟動指令碼或者在終端裡輸出並設定乙個環境變數:

如果乙個程式沒有啟動指令碼,你可以像上面那樣設定下環境變數。

其他的錯誤

我已經發現了像boxee這樣的應用程式,不能很好地在任何情況執行在64位系統下,即使在安裝了32位的庫檔案也不行。這時候唯一可行的辦法就是在根下執行了。(

如何在64位系統中執行16位的彙編源程式

將彙編源程式和masm.exe,link.exe,ml.exe以及debug32.exe放在同乙個資料夾裡 我是放在d try 開啟dosbox軟體,用最前面的乙個視窗 輸入mount d d try 第乙個d 輸入你想操作的exe檔案所在的根目錄盤 我的在d盤 第二個d try 你的彙編軟體 如m...

如何在linux 32位機器編譯64位程式

編譯64位程式,不一定要編譯機器是64位的,但是32位機器預設安裝的gcc編譯環境還是不能用來編譯64位程式。編譯64位程式,需要加上 m64編譯器引數,預設安裝的gcc已經支援該引數,但是缺少64位機器指令相關的檔案,所以不能編譯,會出現下面的錯誤 plain view plain copy in...

如何在64位Linux系統上編譯32位程式

在64位的ubuntu,gcc8.2.0的系統上,如何編譯乙個32的程式?查詢gcc文件可知,編譯64位程式使用 m64選項,例如 gcc m64 o3 index.c o index 該程式只能在64位機器上執行編譯32位程式使用 m32選項,例如 gcc m32 o3 index.c o ind...