1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-24 04:22:22 +00:00
2018-02-18 03:54:34 +08:00

1.1 KiB
Raw Blame History

2.8. 补充说明

为何要话费巨大的精力学习CGO是一个问题。任何技术和语言都有它自身的优点和不足Go语言不是银弹它无法解决全部问题。而通过CGO可以继承C/C++将近半个世纪的软件遗产通过CGO可以用Go给其它系统写C接口的共享库通过CGO技术可以让Go语言编写的代码可以很好地融入现有的软件生态——而现在的软件正式建立在C/C++语言之上的。因此说CGO是一个保底的后备技术它是Go的一个重量级的替补技术值得任何一个严肃的Go语言开发人员学习。

本章讨论了CGO的一些常见用法并给出相关的例子。关于CGO有几点补充如果有纯Go的解决方法就不要使用CGOCGO中涉及的C和C++构建问题非常繁琐CGO有一定的限制无法实现解决全部的问题不要试图越过CGO的一些限制。而且CGO只是一种官方提供并推荐的Go语言和C/C++交互的方法。如果是使用的gccgo的版本可以通过gccgo的方式实现Go和C/C++的交互。同时SWIG也是一种选择并对C++诸多特性提供了支持。