golang工程约定,分包和编译

         go-lang已经发布了go1.1.2,前段时间看了一下go语言的教程,就喜欢上了这门语言,但使用多个文件编译是碰到一些麻烦,引用出错编译通不过,google之找到了相关教程:

             https://golang.org/doc/code.html

             http://lavafree.iteye.com/blog/1683363

             http://blog.studygolang.com/2012/12/go项目的目录结构/

        并按自己的理解记录一下,并进行了实验。我的项目目录如下所示:

goproject                          # 工程根目录 
|.........src                      # 源代码  
          |.....com
               |. ..main
                    |...main.go    #这个必须在main包,有main函数
               |......sqrt
                    |...sqrt.go    #包内源代码文件,不包含main函数

如上结构是go的目录结构了,其实bin和pkg是不用自己建立的,go编译自动生成。


实战一下:

1.在d:\下新建goproject目录

2.设置GOPATH环境变量

        GOPATH = d:\goprojcet

3.goproject下新建src

4.src下新建sqrt,旗下新建sqrt及sqrt.go文件

5.sqrt.go文件输入代码

package sqrt

// Sqrt returns an approximation to the square root of x.
func Sqrt(x float64) float64 {
	// This is a terrible implementation.
	// Real code should import "math" and use math.Sqrt.
	z := 0.0
	for i := 0; i < 1000; i++ {
		z -= (z*z - x) / (2 * x)
	}
	return z
}


6.com下新建main,旗下新建main.go
7.main.go输入

package main

import (
	"com/sqrt"
	"fmt"
)

func main() {
	fmt.Printf("Hello, world.  Sqrt(2) = %v\n", sqrt.Sqrt(2))
}

8.命令行切换到src下,输入命令
         go install com/sqrt
         这时候根goproject下生成一个pkg

9.src下输入命令
       go install com/main
编译生成main(main.exe)命令行

10.执行./main(main.exe)就有输出了

go的这种约定很简洁,其实GOROOT就相当于(JAVA_HOME)
GOPATH 相当于PATH,依赖路径,可以配置多个,linux用冒号(:)隔开,window用分号(;)
GO的引用是 一级包/二级包/包名 比如com/sqrt



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值