This commit is contained in:
Unknown
2014-04-08 16:37:57 -04:00
parent 0c9a2e3364
commit f66ca15956
11 changed files with 53 additions and 39 deletions

View File

@@ -1,5 +1,7 @@
#3.9 与其它语言进行交互
##3.9.1 与 C 进行交互
# 3.9 与其它语言进行交互
## 3.9.1 与 C 进行交互
工具 cgo 提供了对 FFI外部函数接口的支持能够使用 Go 代码安全地调用 C 语言库,你可以访问 cgo 文档主页:[http://golang.org/cmd/cgo](http://golang.org/cmd/cgo)。cgo 会替代 Go 编译器来产生可以组合在同一个包中的 Go 和 C 代码。在实际开发中一般使用 cgo 创建单独的 C 代码包。
如果你想要在你的 Go 程序中使用 cgo则必须在单独的一行使用 `import "C"` 来导入,一般来说你可能还需要 `import "unsafe"`
@@ -65,7 +67,8 @@ Example 3.3 [c2.go](examples/chapter_3/CandGo/c2.go)
c1.go\
include $(GOROOT)/src/Make.pkg
#3.9.2 与 C++ 进行交互
# 3.9.2 与 C++ 进行交互
SWIG简化封装器和接口生成器支持在 Linux 系统下使用 Go 代码调用 C 或者 C++ 代码。这里有一些使用 SWIG 的注意事项:
- 编写需要封装的库的 SWIG 接口。
@@ -77,7 +80,8 @@ SWIG简化封装器和接口生成器支持在 Linux 系统下使用 Go
目前使用 SWIG 存在的一个问题是它无法支持所有的 C++ 库,比如说它就无法解析 TObject.h。
##链接
## 链接
- [目录](directory.md)
- 上一节:[Go 性能说明](03.8.md)
- 下一部分:[语言的核心结构与技术](04.1.md)