Go项目目录管理

本文介绍了一个典型的Go项目结构,包括src、pkg和bin三个主要部分,并通过实例展示了如何组织Go项目的目录及文件,同时演示了如何使用go命令进行安装和构建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方地址:http://docs.studygolang.com/doc/code.html

在Go的官网文档How to Write Go Code中,已经介绍了Go的项目目录一般包含以下几个:

  • src 包含项目的源代码文件; 
  • pkg 包含编译后生成的包/库文件; 
  • bin 包含编译后生成的可执行文件。 
可以通过下面的例子来说明工程目录的组织管理。(Windows 7 64位,go version go1.7.5 windows/amd64)

目录结构如下:

E:\project\go\proj
└─<src>
    ├─<a>
    │  ├─<a1>
    │  │      a1.go
    │  │
    │  └─<a2>
    │          a2.go
    │
    ├─<b>
    │      b1.go
    │      b2.go
    │
    └─<c>
            c.go

其中,带<>的表示是目录,不带<>的表示是普通文件。

各文件代码:

a1.go:

package a1


import "fmt"


func PrintA1() {
fmt.Println("a/a1")
}

a2.go:

package a2


import "fmt"


func PrintA2() {
fmt.Println("a/a2")
}

b1.go:

package b


import "fmt"


func printB1() {
fmt.Println("b.b1")
}

b2.go:

package b


import "fmt"


func PrintB() {
printB1()
fmt.Println("b.b2")
}

c.go:

package main


import (
"a/a1"
"a/a2"
"b"
)


func main() {
a1.PrintA1()
a2.PrintA2()
b.PrintB()
}

执行如下命令:

go install a/a1

go install a/a2

go install b

go install c

可以看到,当前目录下多了以下几个文件:

E:\project\go\proj
├─
<bin>
│      c.exe

├─<pkg>
│  └─<windows_amd64>
│      │  b.a
│      │
│      └─<a>
│              a1.a
│              a2.a

└─<src>
    ├─<a>
    │  ├─<a1>
    │  │      a1.go
    │  │
    │  └─<a2>
    │          a2.go
    │
    ├─<b>
    │      b1.go
    │      b2.go
    │
    └─<c>
            c.go

其中,<bin>和<pkg>文件夹是自动生成的,a1.a、a2.a、b.a是生成的二进制包文件,c.exe就是最终的可执行文件。

运行下c.exe:

E:\project\go\proj>.\bin\c.exe
a/a1
a/a2
b.b1
b.b2

注意:package中的名称最好与目录名一样,这样在import的时候直接import目录名就好了。如果两者不一致,例如上面的b1.go、b2.go里面的package是package bbbbb,则在c.go里import的时候要import "b",然后下面的b.PrintB(),则需要改为bbbbb.PrintB()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉淀期待未来9527

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值