在32位系統下編譯64位程序

在32位系統下編譯64位程序

Tiger Soldier posted @ 2008年7月02日 05:53 inlinux with tagsgcc , 1638 閱讀

由於某些需要要編譯個64位程序,而機子裝的系統是32位。因爲不想裝上64位系統(麻煩&沒空間&得用虛擬機),所以嘗試了下在32位下編譯。

首先是設置gcc生成64位的目標代碼,這倒是好辦,用-m64選項就行。然而光是有這一點還不夠,編譯本身是要鏈接其他的庫的,而64位代碼沒有辦法鏈接32位的庫。

首先是要裝上64位的C庫,這比較好辦,Ubuntu裏有libc6-amd64和libc6-dev-amd64這兩個包,將其裝上。

然後是gcc的64位庫,這個比較麻煩,32位Ubuntu裏沒有提供相應包,因此得到網上去找。我是在http://packages.ubuntu.com上找的,下載amd64架構的包。需要下載的是這兩個包子:gcc4.2和libgcc,用歸檔管理器打開下載下來的deb文件,並打開其中的data.tar.gz包,將其中的.so、.a和.o文件解壓到/usr/lib64中(需要root權限,可先解壓到/tmp再複製過去)。

然後因爲用了C++,所以要裝上C++的64位庫,這個源裏也沒有,同樣是下載解壓。

以上是一些基本的包,在其實中一般不只這些,要根據說明文檔下載相應的包解壓,而且相應包所依賴的包也要下載解壓,所以會很麻煩的,沒事就別跨平臺編譯吧。

最後就要給編譯加上-m64參數

http://blog.csdn.net/summerhust/article/details/7452891

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章