2015-02-08 19 views
5

tôi có một dự án trong dự án gọi là github.com/user:Làm thế nào để xây dựng nhị phân trong gói trong Golang?

src/ 
    github.com/user/project 
     sub1/ 
      main.go 
      sub1.exe (??) 
     sub2/ 
      main.go 
      sub2.exe (??) 

Tôi cố gắng để biên dịch các gói trong dự án của tôi. Khi tôi:

$ cd github.com/user/project/sub1 
$ go build 

Không có gì xảy ra. đi xây dựng dường như kết thúc mà không phàn nàn, nhưng không có tệp thực thi. Làm thế nào tôi có thể xây dựng các gói thành thực thi được?

"đi cửa sổ phiên bản go1.3/amd64"

+1

Nếu main.go có hàm main(), nó sẽ xây dựng tệp thực thi và gọi nó là sub1.exe trong Windows. Không phải là sub1.exe những gì bạn đang tìm kiếm? Hủy bỏ nó và chạy 'đi xây dựng' một lần nữa để xem nếu nó được tạo ra. – siritinga

+0

Hm, không thể thực thi được. Tôi đang ở trong thư mục của gói. Tôi đang sử dụng Windows, nhưng xây dựng từ dòng lệnh Cygwin. Nhưng ngay cả khi sử dụng Windows cmd, không có thực thi. – Kiril

Trả lời

5

Nó không quan trọng nếu bạn đặt tên cho tập tin của bạn main.go hoặc shubudoo.go. Điều duy nhất những gì quan trọng nếu bạn muốn xây dựng một thực thi (một lệnh) là các tập tin của bạn bắt đầu với package main. Một điều nữa: Đi có hoàn toànkhông khái niệm "gói phụ": Tất cả các gói đều bằng nhau cho trình biên dịch. Việc lồng ghép hệ thống tập tin chỉ để thuận tiện cho bạn.

+0

Vì vậy, nó không thể có một() chính trong một gói khác hơn là chính? – Kiril

+0

https://camlistore.googlesource.com/camlistore/+/master/cmd/camget/camget.go – Kiril

+0

Liên kết là ý của tôi. Đó là một gói chính mới trong một dự án. – Kiril

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