1、为了在windows下编译带C代码的go程序,你首先需要下载并安装MinGW或者Cygwin 。
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了 。
怎么吧go程序打包成可运行的EXE文件你在编译器里面build一下,然后去\bin\debug目录下找.exeexe就是可执行文件了 。运行的时候可能需要用到debug目录下的其他文件(如配置文件、dll等),所以需要把debug下的所有文件都放到一起 。
go语言生成exe的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于go语言生成word模板、go语言生成exe的信息别忘了在本站进行查找喔 。
推荐阅读
- 鸿蒙系统为其他手机适配,鸿蒙系统支持其他手机
- mysql数据处理性能优化,mysql常用性能优化
- java代码文字随机跳动,java实现文字闪烁的代码
- 学生u盘里装什么,学生u盘哪个牌子质量好,性价比高
- 数据库原理及优化PHP 数据库php干嘛的
- 查看pg数据库序列值,pgsql 查看序列
- freebsd服务器,freebsd服务器重启网卡命令
- html5联系人字母,用html制作通讯录
- linux命令输错 linux命令输错了怎么办