学习到2.6章节后,最大的问题是,如何将 tempconv 包编译出来,然后 cf.go 文件引用这个包。
首先我已经默认你们编辑好了 tempconv.go 文件, conv.go 文件 和 cf.go 文件。
这里他们的文件结构应该是这样的:(tree命令执行地址是在 $HOME/go 目录)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
[xxxxxxxxxxxxx go]$ tree . ├── pkg │ └── linux_amd64 │ └── GoCode │ └── ch2 │ └── tempconv.a └── src └── GoCode ├── ch1 │ ├── dup1.go │ ├── dup2.go │ ├── dup3.go │ ├── dupTestData │ ├── echo2.go │ ├── hello.go │ ├── lissajous.go │ └── out.gif └── ch2 ├── boiling.go ├── cf ├── cf.go ├── echo4.go ├── ftoc.go ├── tempconv │ ├── conv.go │ └── tempconv.go └── tempconv0.go 9 directories, 17 files |
第9行和书中内容不一致,因为我的代码目录是 GoCode,不是 gopl.io,这里说明一下。
第25行,这里tempconv包的go源码是需要放在同一个文件夹里面的。
编译方法是任意目录下执行下面代码:
1 |
go install GoCode/ch2/tempconv |
然后它会生成一个 tempconv.a 文件,参考第七行。
然后再编译 cf.go 文件就可以成功了。
注意这里import也要同时修改:
1 2 3 4 5 6 |
import ( "GoCode/ch2/tempconv" "fmt" "os" "strconv" ) |
其他内容一致即可。
【Go】Go程序设计语言 2.6章节 包的编译