golang在window环境下用cgo编译c语言

简介:

   网上有很多使用cgo的教程了,在这里分享一种非常简单的windows环境下完成cgo编译的方法。

   首先,下载win环境下gcc下载:TDM gcc,安装后会自动加入到PATH下,cmd里就能使用gcc命令。我的电脑上cgywin在使用gcc总是会出问题,如果cgywin的gcc可以正常编译,就无须再另外下载gcc了。

   编写含C语言的go文件:

1
2
3
4
5
6
7
8
9
10
package cgotest
                                                                   
/*
#include <stdio.h>
*/
import  "C"
                                                                   
func PrintHello() {
     C.puts(C.CString( "Hello, world\n" ))
}

   

   在此目录下创建批处理文件cgo.bat:

1
2
C:\Go\pkg\tool\windows_386\cgo cgotest.go
go install


   双击运行cgo.bat就会在该目录下生成 _obj 文件夹:

wKioL1LtJ3TywfzXAAEL81Q4kH4320.jpg

   且会在GOPATH下的pkg生成我们要调用的 cgotest.a 静态链接库

   再需要的源码中的import加入"cgotest"即可。










本文转自 ponpon_ 51CTO博客,原文链接:http://blog.51cto.com/liuxp0827/1355463,如需转载请自行联系原作者
目录
相关文章
|
编译器 测试技术 Go
Go语言的自给自足:编译自身的神奇之旅
Go语言的自给自足:编译自身的神奇之旅
|
11月前
|
监控 Java Go
编译时插桩,Go应用监控的最佳选择
本文讲解了阿里云编译器团队和可观测团队为了实现Go应用监控选择编译时插桩的原因,同时还介绍了其他的监控方案以及它们的优缺点。
997 113
|
11月前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
1814 14
|
Go 计算机视觉
在Golang高并发环境中如何进行协程同步?
在此示例中,使用互斥锁来保护对共享计数器变量 c 的访问,确保并发的 HTTP 请求不会产生数据竞争。
239 3
|
编译器 Go
go语言编译选项
【10月更文挑战第17天】
284 5
go语言编译时常量表达式
【10月更文挑战第20天】
146 3
|
Shell Linux API
C语言在linux环境下执行终端命令
本文介绍了在Linux环境下使用C语言执行终端命令的方法。首先,文章描述了`system()`函数,其可以直接执行shell命令并返回结果。接着介绍了更强大的`popen()`函数,它允许程序与命令行命令交互,并详细说明了如何使用此函数及其配套的`pclose()`函数。此外,还讲解了`fork()`和`exec`系列函数,前者创建新进程,后者替换当前进程执行文件。最后,对比了`system()`与`exec`系列函数的区别,并针对不同场景推荐了合适的函数选择。
|
Linux C语言 iOS开发
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
306 0
|
Linux C语言 Windows
C语言文件编程-Linux环境下运行
本文介绍了在Linux环境下使用C语言进行文件编程时的两种主要接口:C标准库函数与Linux系统调用。C标准库提供了`fopen`, `fread`, `fwrite`, 和 `fclose`等函数,适用于普通文件操作;而Linux系统调用如`open`, `read`, `write`, 和 `close`则更适合处理设备文件,同时也可用于普通文件。这两种方法的主要区别在于前者使用文件指针,后者使用文件描述符。文章还给出了两个示例程序:一个使用C标准库函数实现文件复制,另一个则使用Linux系统调用完成相同任务。
200 2

推荐镜像

更多