cgo 也是一个 Go 语言自带的特殊工具.一般情况下,我们使用命令 go tool cgo 来运行它.这个工具可以使我们创建能够调用 C 语言代码的 Go 语言源码文件.这使得我们可以使用 Go 语言代码去封装一些 C 语言的代码库,并提供给 Go 语言代码或项目使用. 在执行 go tool cgo 命令的时候,我们需要加入作为目标的 Go 语言源码文件的路径.这个路径可以是绝对路径也可以是相对路径.但是,作者强烈建议在目标源码文件所属的代码包目录下执行 go tool cgo 命令并以目标…
Go 语言"避坑"与技巧 任何编程语言都不是完美的,Go 语言也是如此.Go 语言的某些特性在使用时如果不注意,也会造成一些错误,我们习惯上将这些造成错误的设计称为"坑". Go 语言的一些设计也具有与其他编程语言不一样的特性,能优雅.简单.高效地解决一些其他语言难以解决的问题. 本章将会对 Go 语言设计上可能发生错误的地方及 Go 语言本身的使用技巧进行总结和归纳. goroutine(Go语言并发)如何使用才更加高效? Go语言原生支持并发是被众人津津乐道的特…
Go 1.10 Release Notes Introduction to Go 1.10 Changes to the language Ports Tools Default GOROOT & GOTMPDIR Build & Install Test Cgo Doc Fix Get Pprof Vet Diagnostics Gofmt Compiler Toolchain Assembler Gccgo Runtime Performance Garbage Collector C…
命令 go env 用于打印 Go 语言的环境信息.其中的一些信息我们在之前已经多次提及,但是却没有进行详细的说明.在本小节,我们会对这些信息进行深入介绍.我们先来看一看 go env 命令情况下都会打印出哪些 Go 语言通用环境信息. 表0-25 go env 命令可打印出的 Go 语言通用环境信息 名称 说明 CGO_ENABLED 指明cgo工具是否可用的标识. GOARCH 程序构建环境的目标计算架构. GOBIN 存放可执行文件的目录的绝对路径. GOCHAR 程序构建环境的目标计算架…
学习 Golang,有时需要 Cgo,所以需要学习 C.C++. 语言入门: https://item.jd.com/12580612.html https://item.jd.com/28326539330.html 参见: https://github.com/hunterhug/cmake_example 历史 稍微很长的历史,来源网络,可以先跳过. C语言的发展阶段 C 语言之所以命名为 C,是因为 C 语言源自 Ken Thompson 发明的 B 语言,而 B 语言则源自 BCPL…