最近学习golang,学习到cgo章节。发现cgo还是有许多要注意的小细节,这里特别记录下。
1、要用golang调用C代码,那么必须要`import "C"`,最好单独写一行,不要和其它的import写在一起,否则很可能报错。
2、一旦用了c代码,那么cgo直接会编译、检查注释中的代码。所以,一层注释其实是看做C代码的。如果要用注释,至少要两层注释。(`// //cgo下面两层注释`)
3、目录关系。`.h`文件可以通过CFLAGS指定,但是c文件,似乎只能放在调用者的相同目录下。
4、最好将C代码编译成共享库,那么只需要指定头文件就可以了。这样相对好一点。
https://blog.golang.org/c-go-cgo(需要翻墙)
1、要用golang调用C代码,那么必须要`import "C"`,最好单独写一行,不要和其它的import写在一起,否则很可能报错。
2、一旦用了c代码,那么cgo直接会编译、检查注释中的代码。所以,一层注释其实是看做C代码的。如果要用注释,至少要两层注释。(`// //cgo下面两层注释`)
3、目录关系。`.h`文件可以通过CFLAGS指定,但是c文件,似乎只能放在调用者的相同目录下。
4、最好将C代码编译成共享库,那么只需要指定头文件就可以了。这样相对好一点。
参考:碰上很多问题,当然会网上找资料。下面两个,相对比较有用的。
http://googollee.blog.163.com/blog/static/1159411201031812128593/https://blog.golang.org/c-go-cgo(需要翻墙)