導航:首頁 > 操作系統 > linux64位運行32位程序

linux64位運行32位程序

發布時間:2023-05-17 18:23:05

⑴ 如何在64位的linux中運行32位的應用程序

大部分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
2、下載包,然後將包解壓縮
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,你可能需要修改啟動腳本或者在終端里輸出並設置一個環境變數:
export GTK_PATH=/usr/lib32/gtk-2.0 command-to-start-app
如果一個程序沒有啟動腳本,你可以像上面那樣設置下環境變數。

⑵ labview32位在64位系統報錯

labview32位在64位系統報錯
在Windows環境中,32位可執行文件可以在64位PC上運行。因此LabVIEW 32位開發系統、運行引擎和可執行文件可以在Windows 64位計算機上運行。運行64位內核的Mac OS X計算機無法運行32位應用程序;如需運行32位應用程序,需要切換到32位內核,內核能否進行切換取決於Mac OS X版本。Linux 64位需要安裝32位庫方可運行32位應用程序;但是,安裝這些庫無法保證所有32位應用程序都能在64位Linux計算機上運行。
能否使用LabVIEW 64位應用中拆程序生成器構建32位版本的可執行文件?
不能,目前不能使用LabVIEW 64位應用程序生成器構建32位版本的可執行文件。
LabVIEW可以訪問多少內存?
應用程序可以請求內存,但是操作系統可以根據可用大小(物理或虛擬)接受或拒絕請求。默認情況下,32位Windows XP上的LabVIEW 32位只能使用最多2 GB的地址空間。有一個3 GB的磨戚啟動選項,可以允許32位Windows XP的應用程序使用最多3 GB的地址空間。64位Windows Vista、64位Windows 7上運行的LabVIEW 32位最多可用4 GB的地址空間瞎培陵。在上述任何配置中,如無足夠的可用連續內存,仍然可能發生大緩沖區無法分配的情況。64位操作系統上的LabVIEW 64位支持的RAM與操作系統支持的RAM相同(理論上為16 EB)。目前,64位Windows的上限為16 TB。

⑶ 64位linux編譯32位程序

在64位的Linux下,gcc 編譯 32 位程序需要添加參數 -m32 ,ld需要添加參數是 -m elf_i386。
1、Along with the -m32 flag in gcc, you may need to include the -melf_i386 flag for ld to properly link the 32bit object files to the 32bit libraries if you have both the 32bit and 64bit libraries.
2、 ld命令 ld命令是GNU的連接器,將目標文件連接為可執行程序。
3、舉例:

gcc -m32 -o hello hello.c

gcc -m32 -c hello.o hello.c
ld -m elf_i386 -o kernel main.o hello.o

⑷ 弱弱的問一句,LINUX 64位系統,能用32位的linux軟體嗎

1、可以的
2、linux64位系統一般會兼容32位軟體嫌數,此余可以安裝32位或64位兩份軟體
比如:libgcc
libgcc.i386 : GCC version 4.1 shared support library
libgcc.x86_64 : GCC version 4.1 shared support library
3、還有純64位linux系森者滾統只能安裝64位軟體。

⑸ 64位linux下的GCC如何編譯出一個32位可執行程序

理論上安裝支持環境,之後64位的gcc編譯成32位程序,就加-m32參數即可。

當然還一個辦法是裝個32位的gcc。

另外,交叉編迅純譯也適用於x86架構。

不過這么編譯經常會出現各種問題,所以編譯32位的程序,最好還是用32位系統。

不一定重裝,用chroot和setarch命令配合即可弄出一個32位的子系統。

⑹ 64位linux下,32位程序能不能調用64位庫文件為什麼

不能,要安裝32位庫才可以,在64位系統當中要運行32位軟體目前比較好的是12.2,但是在裝的時局手候如臘做要自定義安裝32位庫,渣衡運行相當完美,ubuntu當中運行有點兒問題。

⑺ linux64位機器編譯32位程序出現錯誤。

32 和 64 是完全兩個不同的系統。Linux 他們的兼容,完全是基於內核的雙模式切換功能,但是因為是基於內核的。所以 32 和 64 的系統函數庫就還是沒關系。
那麼,你編譯和運行 32 位程序,就需要 64 位的函數庫介面支撐。同樣 64 位程序,也需要 64 位的函數庫提供支撐。

你這個問題,教程只讓你裝了最基本的編譯器環境,但是函數支撐環境全都沒有裝,肯定是還會提示找不到需要的函數庫的。
另外,就算你這個命令裝了需要的函數庫,也肯定只是裝了 64 位的函數庫,32 位庫也沒有裝。那麼編譯 32 位程序也會出現找不到 32 位函數庫的問題的。

你這個問題,我建議你學習兩部分:
1、Linux 的依賴關系;
2、Linux 的 mutilib 相關實現。

我建議,編譯 32 的程序請用純 32 位系統。64 位系統只編譯 64 位的程序。64 位系統只可以運行 32 位程序,不要用來編譯。Linux 裡面隨便找個程序,就會依賴很多的函數庫,這對於編譯器調用來說,會很亂的。
如果真的沒有空閑機器去單獨跑 32 位系統了,我建議要麼是 chroot 環境,要麼是用交叉編譯。不過注意這兩種方式還是需要設置。

閱讀全文

與linux64位運行32位程序相關的資料

熱點內容
阿里雲sip伺服器 瀏覽:73
身為程序員的你怎麼拚命 瀏覽:453
android圖片手勢放大 瀏覽:586
錢的所有演算法 瀏覽:13
光模塊伺服器怎麼直接連電腦 瀏覽:376
編譯器識別單詞 瀏覽:344
2b2t伺服器怎麼獲得金蘋果 瀏覽:344
SQL如何進行伺服器配置 瀏覽:175
貿易公司適合在什麼app引流 瀏覽:717
高級c語言編程還在用turboc 瀏覽:884
cad如何畫單片機 瀏覽:13
管理雲伺服器哪個軟體好 瀏覽:747
什麼app可以消除照片一片水印 瀏覽:242
在什麼app上發表條漫 瀏覽:88
安卓電腦主機怎麼打開 瀏覽:819
eos生態app什麼時候可以登陸 瀏覽:397
找安裝維修工人用什麼App 瀏覽:300
區位碼加密 瀏覽:854
考編教師用什麼app 瀏覽:195
靜態面向對象編程語言 瀏覽:908