Trình biên dịch Go có thể được cài đặt trên Windows không?


94

Tôi đã tìm kiếm trình biên dịch Windows trên golang.org , nhưng dường như tôi không thể tìm thấy nó. Tôi chỉ có thể thấy các trình biên dịch Linux và OS X. Có ai biết nếu lập trình Go có thể được thực hiện trên Windows, hoặc nó là một cái gì đó mà Google chưa triển khai?

Cập nhật: có vẻ như hiện tại (tháng 11 năm 2012) golang.org đã có bản phát hành nhị phân chính thức cho windows 32 / x86_64.


groups.google.com/group/golang-nuts - bạn sẽ tìm thấy câu trả lời của mình ở đó.
kar

2
gofmt.com/compile.html nếu bạn muốn thử một số lập trình Go không phá hủy trên Windows. Nó có thể biên dịch, liên kết và chạy các chương trình của bạn và hiển thị cho bạn đầu ra. Vui lòng gửi cho tôi một tin nhắn riêng nếu bạn tìm thấy bất kỳ lỗ hổng nào trên trang web đó. Cảm ơn!
Randy Sugianto 'Yuku'

Cập nhật: trình biên dịch erGo đã được phát hành để thử nghiệm trong tuần này. Nhà phát triển Russel Newquist đã trả lời trong các bình luận bên dưới. newquistsolutions.com/ergo
nathan

4
Tôi bỏ phiếu để đóng câu hỏi này là lạc đề vì trang web golang.org cung cấp các gói windows chính thức kể từ bản phát hành chính thức (1.0) đầu tiên.
icza

Câu trả lời:


54

Hiện đã có trình cài đặt cho Windows, hãy xem Đi trong Windows

HelloWorld.go

package main

func main() {
    println("Hello World!");
}

Biên dịch với 8g, liên kết với 8lvà sau đó thực thi. Thí dụ:

8g HelloWorld.go
8l -o HelloWorld.exe HelloWorld.8
HelloWorld

Một bản dựng Win32 khác của Go (phát hành 2010-08-04): code.google.com/p/gomingw/downloads/list
Kolo32

Rất tiếc, tôi không thể làm cho cổng này hoạt động chính xác. trình liên kết 8l luôn phàn nàn về việc thiếu runtime.a và nó cũng bị treo ngay sau khi gọi.
Greatwolf

1
@Victor: Tôi vừa thiết lập điều này (vào ngày 12 tháng 12 năm 2010) và nó hoạt động tốt để biên dịch và liên kết các ví dụ HelloWorld, PrimeSieve và Wiki. Và cả ba chương trình đều chạy.
Lawrence Dol,

1
Cổng mingw dường như hoạt động mà không cần cài đặt bất kỳ môi trường đặc biệt nào ( code.google.com/p/gomingw/downloads/list ). Ít nhất nó cũng biên dịch và liên kết một số ví dụ mà tôi đã thử.
Lawrence Dol,

1
Cảm ơn Jonas vì câu trả lời hay và hữu ích.
bhadra

23

Nó chưa được đưa vào Câu hỏi thường gặp về Go Lang, nhưng từ bảng thay đổi :

Tại sao Go không chạy trên Windows? Chúng tôi hiểu rằng một phần đáng kể máy tính trên thế giới chạy Windows và sẽ thật tuyệt nếu những máy tính đó có thể chạy chương trình Go. Tuy nhiên, đội cờ vây có quy mô nhỏ và chúng tôi không có đủ tài nguyên để thực hiện một cổng Windows vào lúc này. Chúng tôi sẵn sàng trả lời các câu hỏi và đưa ra lời khuyên cho bất kỳ ai sẵn sàng phát triển phiên bản Windows.


5
Mặc dù câu trả lời này được nhiều người ủng hộ, nhưng nó đã lỗi thời.


7

Mặc dù thực tế là Go chỉ mới ra đời được hai ngày, nhưng câu hỏi này đã trở thành Câu hỏi thường gặp trên danh sách gửi thư Go. (Rất tiếc, nó vẫn chưa được thêm vào danh sách Câu hỏi thường gặp trên trang web.)

Về cơ bản, Go được thực hiện bởi một nhóm rất nhỏ người, vì vậy họ chỉ đơn giản là không có thời gian cũng như nguồn lực để thực hiện một cổng Windows. Một nhóm rất nhỏ đó cũng có thể là những người đã phát minh ra Unix, vì vậy đó là một mục tiêu đầu tiên tự nhiên.


AFAIK, họ phát triển cờ vây trong 20% ​​thời gian của họ, không phải toàn thời gian. (Dù sao thì đó là những gì tôi đã đọc.) Dù sao, câu trả lời của tôi có nghĩa là rất-lớn-lưỡi-rất sâu-trong-má.
Jörg W Mittag

2
Trên thực tế, trang lịch sử nói rằng mặc dù nó bắt đầu như một dự án thời gian rảnh, nhưng giờ đây nó là một dự án toàn thời gian cho ít nhất một số nhà phát triển. Tôi đã chỉnh sửa câu trả lời để loại bỏ cơ bản các nhận xét về các ràng buộc bán thời gian.
Jörg W Mittag

Và tôi ủng hộ bạn vì điều đó :)
OscarRyz

Họ phát minh ra Unix? Vậy đây là một dự án hưu trí?
Henk Holterman

10
Chà, họ cũng đã phát minh ra Plan9, kế thừa của Unix. Và Inferno, kẻ kế thừa Plan9. Và C. And Limbo, ngôn ngữ lập trình hệ thống thu gom rác mà Inferno được viết trong đó. (Vì vậy, theo một nghĩa nào đó, nó là ngôn ngữ kế thừa của C và tiền thân của Go.) Và ngôn ngữ lập trình đồng thời Newsqueak (cũng có nghĩa là tiền thân của Go, đặc biệt là Goroutines.) và Bộ thu gom rác rất đồng thời được sử dụng trong Limbo, Inferno và cả trong một số triển khai của ML tiêu chuẩn. Và UTF-8. Vì vậy, không phải họ đã không bận rộn trong suốt 40 năm giữa Unix và Go.
Jörg W Mittag

3

Vì vậy, nếu bạn cũng như tôi, thường xuyên sử dụng Windows và muốn lập trình Go ngay bây giờ, bạn có thể thực hiện trên máy ảo. Tôi sử dụng VirtualBox chạy Ubuntu ở chế độ dường như không có. Tôi đã thiết lập nó vì tôi thích Linux hơn Windows về nhiều thứ.

Xây dựng và làm việc với cờ vây đối với tôi hoàn toàn không đau. Tôi có một Bash đang mở trong một thiết bị đầu cuối để chạy bản dựng và dùng thử ứng dụng của mình. Thư mục nguồn là một thư mục được chia sẻ giữa Windows và Linux (một tính năng VirtualBox nhưng tôi chắc chắn rằng VMWare cũng có điều tương tự). Tôi chỉnh sửa mã của mình trong Komodo Edit trên Windows và sử dụng Mercurial cho cùng một mã nguồn trên cả hai hệ điều hành.


Như đã đề xuất ở trên, tôi đã cài đặt ubuntu trên máy tính windows (với virtualbox) và sau đó bắt đầu.
dùng132797

3

Chưa.

Các tác giả của Go có nguồn gốc rất sâu sắc từ các hệ điều hành không phải Windows (Thông tin bên lề: ai trong số họ đã tạo ra không kém hệ điều hành UNIX)

Vì vậy, đừng mong đợi sẽ sớm có một cổng Windows từ chúng.

Ngôn ngữ này là mã nguồn mở, vì vậy sẽ chỉ là vấn đề thời gian (mất từ ​​6 - 8 tháng) để triển khai Windows sẽ có sẵn.


2
Mối liên hệ của bạn giữa một tác giả của Unix viết trình biên dịch trong thời gian rảnh rỗi và "không mong đợi một cổng Windows" là thú vị, vì họ chỉ ra trong bảng thay đổi (xem câu trả lời của mbarnett) rằng đó chỉ là vì họ không có tài nguyên .
Jed Smith

2
Chỉ là một từ ngữ (nhẹ nhàng) khác cho "không quan tâm".
ttvd

1
Có, giống như Linus tự tạo một cổng git cho Windows. Điều đó sẽ không bao giờ xảy ra (mặc dù cổng đang được tạo bởi những người khác)
OscarRyz

0

Mặc dù hiện tại không có phiên bản Windows nào, nhưng có lẽ nó có thể được biên dịch bằng Cygwin trên nền tảng Windows.


1
Bạn có thể biên dịch nó dưới cygwin với rất nhiều lần làm lại, nhưng thậm chí sau đó, bạn sẽ kết thúc với trình biên dịch 6g / 8g xuất ra ELF, không phải là bản nhị phân cửa sổ gốc. Tuy nhiên, đây vẫn sẽ là một bước đầu tiên tốt. code.google.com/p/golang-on-cygwin Sau khi xây dựng thành công, bước tiếp theo sẽ là sửa trình biên dịch để tạo mã thực thi của windows.
Alan S


-2

Quá trình cài đặt Go trên windows được thực hiện ngay nếu bạn sử dụng cổng windows x32 thử nghiệm . Tài liệu về các bước cài đặt Go trên windows có thể tìm thấy tại đây

Bạn có thể cũng sẽ muốn các công cụ MinGW (bash, make, gcc, v.v.): http://sourceforge.net/projects/mingw/files/

và các tệp và công cụ GTK + ("gói tất cả trong một" bao gồm pkg-config): http://www.gtk.org/download/win32.php

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.