2013-05-14 79 views
16

Tôi đã mã hóa chương trình Go trong hệ thống 64 bit nhưng tôi muốn biên dịch một nhị phân 32 bit! Tôi làm nó như thế nào? 64 bit nhị phân đang làm việc chỉ tuyệt vời nhưng tôi không có ý tưởng làm thế nào để tạo ra một nhị phân 32 bit. Tôi rất biết ơn nếu ai đó có thể giúp tôi về điều này!Biên dịch nhị phân 32 bit trên hệ thống 64 bit

Cảm ơn trước!

PS: Tôi đang sử dụng hệ điều hành windows.

+0

Bạn đang sử dụng IDE nào? –

+0

Tôi không sử dụng bất kỳ IDE nào. Chỉ cần một trình soạn thảo văn bản và dòng lệnh. Dù sao, là nó có thể biên dịch đi mã trong VS? – pluralism

+1

Hãy thử sử dụng biến môi trường GOARCH như được mô tả chi tiết tại đây: http://stackoverflow.com/questions/7786492/how-do-you-build-the-8g-and-6g-go-compilers-for-go –

Trả lời

16

Nếu bạn xây dựng Go của bạn từ nguồn, sau đó bạn có thể xây dựng bất kỳ trình biên dịch bổ sung và thư viện cho bất kỳ CPU và hệ điều hành. Nếu bạn đang ở trên cửa sổ/amd64 và muốn xây dựng cho các cửa sổ/386, thì đây sẽ xây dựng tất cả mọi thứ bạn cần để biên dịch cho các cửa sổ/386:

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

Một khi bạn đã làm điều đó, bạn có thể xây dựng các cửa sổ của bạn/386 có thể thực thi với:

set GOARCH=386 
cd %YOUR_PROG_DIR% 
go build 

Vì bạn đang ở trên windows/amd64, bạn thậm chí có thể chạy/kiểm tra các cửa sổ/386 chương trình của mình. Chỉ cần đảm bảo set GOARCH=386 trước khi bạn gọi bất kỳ lệnh nào cho windows/386.

Một lưu ý: điều này không hỗ trợ cgo, vì vậy bạn không thể sử dụng bất kỳ gói nào sử dụng cgo.

+1

Nếu bạn chạy "đi xây dựng -a "thay vào đó, bạn vẫn cần phải chạy" make.bat "bên trong thư mục GOROOT? – noj

+0

@noj Tôi không rõ ràng về câu hỏi của bạn? Nhưng bạn chạy make.bat một lần để xây dựng tất cả các trình biên dịch và các gói tiêu chuẩn. Sau đó bạn chỉ có thể sử dụng chúng. – alex

+0

'make.bat' là phiên bản cũ 1.4 ... làm thế nào để làm sạch phiên bản mới 1.8.3? – KingRider

3

Ok, cuối cùng tôi đã giải quyết được vấn đề! Đây là cách tôi đã làm nó (tôi đã thất bại thảm hại thực tế!).

Điều đầu tiên tôi làm là tải xuống GCC từ http://www.mingw.org/. Tiếp theo thêm C: \ MinGW \ bin vào biến môi trường PATH (tôi giả sử rằng MinGW được cài đặt trong C: \ MinGw) Điều tiếp theo trước khi chạy đi xây dựng/cài đặt là đặt các biến môi trường. Mở dấu nhắc lệnh và đi tới C: \ Go \ src và chạy all.bat từ dòng lệnh. Sau đó, bạn phải đặt GOOS, GOARCH và CGO_ENABLED cho cửa sổ, 386 và 0 tương ứng! (Bạn cũng nên đặt GOPATH thành đường dẫn nơi dự án Go hiện tại của bạn). Tiếp theo chạy make.bat và make.bat --no-clean Sau đó, bạn có thể xây dựng dự án của mình cho các hệ thống 32 bit! Tôi hy vọng điều này là hữu ích!

6

Con đường tôi đã đạt được điều này (không có bất kỳ biên dịch của trình biên dịch) trên Windows 7 64 bit máy tính của tôi lần đầu tiên có cửa sổ AMD64 cài đặt, sau đó download 32bit zip và giải nén vào một thư mục thứ hai:

\go\go32 
\go\go64 

đến lúc đó điều chỉnh PATHGOROOT bên trong cửa sổ command prompt của tôi như sau:

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

sau đó, tôi quay trở lại và biên dịch lại ứng dụng của tôi mà trước đây đã được biên soạn bằng cách sử dụng 64 bit. Tất cả điều này có thể được thiết lập trong một lô nếu bạn muốn chuyển đổi giữa các lần thường xuyên.

+0

Làm việc cho tôi, nhưng tôi phải đặt PATH vào thư mục go32 \ BIN. – user3523091

Các vấn đề liên quan