2、首选安装MinGW 。在安装MinGW之后,记得要把MinGW安装目录\bin路径设置在path环境变量里面,以便能在dos窗口下直接调用gcc 。
3、下载一个gowin-env 。下载地址:gowin-env 。下载后解压到某个目录下,例如:C:\gowin-env. 然后,编辑go-env.bat 。配置相关的go参数 。例如,我的配置是:
set GOARCH=386
set GOOS=windows
set GOROOT=c:\go
set GOBIN=%GOROOT%\bin
set GOPATH=%GOROOT%;F:\workspace\goSample01;
设置好go-env.bat后,就可以点击Console.bat来启动编译和运行窗口 。
4、编写一个带C代码的go程序 。例如,testc.go
5、编译
例如:
go build -compiler gccgo test_c.go
运行调用C代码的go文件(可?。?
1、testc.go.
创建rand目录,然后在rand里面创建testc.go. 代码如下:
package rand
/*
//
#include stdio.h
*/
import "C"
func PrintHello() {
C.puts(C.CString("Hello, world\n"))
}
2、a.go
在rand下创建a.go.代码如下:
package rand
import "fmt"
func SayHello(name string){
fmt.Println(name)
}
3、test_import.go
在rand的上一级创建test_import.go 。代码如下:
package main
import "./rand"
func main(){
rand.SayHello("tom")
rand.PrintHello()
}
4、运行test_import.go
go run test_import.go
在测试其它几个C代码的时候 , 发现windows版本的cgo还有些编译问题 , 同样的代码转移到苹果的XCODE下就没有问题 。后来终于发现原因了,原来有些例子是unix平台下的,而在windows平台下,方法名和参数需要做调整 。
例如:下面代码在windows下编译报一堆错误 。
package rand
/*
#include stdlib.h
*/
import "C"
func Random() int {
return int(C.random())
}
func Seed(i int) {
C.srandom(C.uint(i))
}
这里需要把return int(C.random()) 修改为“return int(C.rand())”
C.srandom(C.uint(i))修改为“C.srand(C.uint(i))”编译就OK了 。
windows10怎么配置go语言环境变量首先从网上下载go语言go语言配置检测的编译器go语言配置检测,我在发布这篇经验的时候go语言编译器的版本已经更新到了1.4版 。根据你的系统平台下载相应的版本后,如果是压缩文件,先解压后双击运行,不是压缩文件,直接双击运行就可以了,运行后出现下面的界面,在下面界面上单击“Next” 。
跟所有的软件安装包一样,go语言编译安装是也需要接受许可协议,在图中红圈的位置单击选择框,同意许可协议,单击“Next” 。
在这一步你要改变go的安装目录 , 默认是安装在C盘下,C盘下文件文件太多会影响系统性能,单击红圈所示的“change”按钮会弹出安装目录选择对话框 。
在这个对话框中你选择你要安装go编译器的目录,选择后会在红圈所示的位置会显示你所选择的目录 , 如果不是你预期的目录,青重新选择,然后单击“OK”按钮,对话框会回到第三步的对话框 , 但是目录以及变成了你刚才选择的目录,这个对话框中单击“Next”按钮 。
这一步开始安装go编译器了,单击“Install”按钮,系统会自动安装go编译器到你刚才选择的目录中 。
如果不出意外,安装程序开始copy文件,并以进度条的方式显示当前的角度,一般5分钟左右就安装完了 。
党出现下面的界面的时候,表明go编译器已经安装完成了 。单击“Finish”按钮结束安装 。
安装完后要配置一些环境变量,首先要把go安装目录下的bin目录放到Path环境变量中 。
接着创建一个GOPATH环境变量,这个变量很重要,我自己写的代码要放到这个变量中配置的目录中 , go编译器才会找到并编译
推荐阅读
- Python豆瓣爬虫缺失值,python爬取豆瓣图书top250
- 小定制工厂如何做引流产品,小定制工厂如何做引流产品呢
- 苹果什么相册可以分类视频,苹果手机相册怎么把照片和视频分类
- 真人恋爱互动手机游戏网,真人恋爱互动手机游戏网页版
- php数据库密文存储 php数据库密码加密
- 网络上的erp系统,erp系统叫什么
- 免费的加速服务器国外软件,免费加速国外网站的加速器
- php搜索重复数据结构 php重复函数
- sqlserver的存储过程mysql,sqlserver的存储过程上限