2013-05-14 200 views
16

我在64位系統中編寫了一個Go程序,但我想編譯一個32位二進制文​​件!我該怎麼做? 64位二進制工作正常,但我不知道如何創建一個32位二進制。 如果有人能幫助我,我將非常感激!在64位系統上編譯32位二進制

在此先感謝!

PS:我正在使用Windows操作系統。

+0

你在用什麼IDE? –

+0

我沒有使用任何IDE。只是一個文本編輯器和命令行。無論如何,是否有可能在VS編譯去代碼? – pluralism

+1

嘗試使用GOARCH環境變量,如下所示:http://stackoverflow.com/questions/7786492/how-do-you-build-the-8g-and-6g-go-compilers-for-go –

回答

16

如果您從源代碼構建Go,那麼您可以爲任何CPU和OS構建任何其他編譯器和庫。如果您使用的是Windows/amd64和希望建立在Windows/386,那麼這將創造一切條件,你需要爲Windows編譯/ 386:

set GOARCH=386 
cd %GOROOT%\src 
make.bat --no-clean 

一旦你這樣做,你可以建立你的Windows/386可執行文件:

set GOARCH=386 
cd %YOUR_PROG_DIR% 
go build 

既然你在使用Windows/AMD64,你應該能夠運行,即使/測試Windows/386的程序了。在調用windows/386的任何命令之前,請確保set GOARCH=386

一個警告:這不支持cgo,所以你不能使用任何使用cgo的軟件包。

+1

如果你運行「去build -a「,你是否還需要在GOROOT目錄下運行」make.bat「? – noj

+0

@noj我不清楚你的問題?但是,您運行make.bat一次來構建所有編譯器和標準軟件包。之後,你可以使用它們。 – alex

+0

'make.bat'是舊版本1.4 ...如何使新版本1.8.3清潔? – KingRider

3

好的,我終於解決了這個問題!在這裏,我是這麼做的(我真的很失敗!)。

我做的第一件事是從http://www.mingw.org/下載GCC。 接下來將C:\ MinGW \ bin添加到PATH環境變量中(我假設MinGW安裝在C:\ MinGw中) 運行go build/go install之前的下一件事是設置環境變量。 打開命令提示符並轉到C:\ Go \ src並從命令行運行all.bat。 然後,您必須將GOOS,GOARCH和CGO_ENABLED分別設置爲窗口386和0(您還應該將GOPATH設置爲當前Go項目的路徑)。然後運行make.bat和make.bat --no-clean 之後,您可以構建32位系統的項目!我希望這是有幫助的!

6

我有我的Windows 7 64位PC首次具有窗戶上實現這一點(沒有編譯器的任何編譯)方式AMD64安裝,然後download 32bit拉鍊和解壓到第二個文件夾:

\go\go32 
\go\go64 

屆時調整我的命令提示符窗口內PATHGOROOT如下:

set PATH=\go\go32;%PATH% 
set GOROOT=\go\go32\ 

然後我回去,並重新編譯我的應用程序以前使用64位編譯。如果您想定期切換,所有這些都可以批量設置。

+0

爲我工作,但必須將PATH設置爲go32 \ BIN文件夾。 – user3523091

相關問題