当前位置: 首页 > news >正文

Winddow系统下关于Golang使用Cgo的配置

1.配置CGO_ENABLED为1

go env -w CGO_ENABLED=1

2.安装gcc环境,否则出现cgo: C compiler "gcc" not found: exec: "gcc": executable file not found in %PATH%错误

安装包:链接:https://pan.baidu.com/s/1sgF9lijqGePnFLiiixt4Zg?pwd=am7z 
提取码:am7z。也可以官网下载自己想要版本。

3.配置环境变量,将gcc的路径添加添加到path,步骤如下。

添加路径到path。

4. 若出现一下错误

# runtime/cgo
gcc_linux_amd64.c: In function '_cgo_sys_thread_start':
gcc_linux_amd64.c:57:2: error: unknown type name 'sigset_t'; did you mean '_sigset_t'?
  sigset_t ign, oset;

......

可以设置GOOS=windows

go env -w GOOS=windows

5.简单例子

  1. 文件目录
  2. 文件内容
    // main.go
    package main/*
    #cgo CFLAGS: -I${SRCDIR}
    #cgo LDFLAGS: -L${SRCDIR} -lhello
    #include "hello.h"
    int Add(int a, int b) {return a + b;
    }
    */
    import "C" // 注意C代码和 import "C" 之间不可存在空行import "fmt"func main() {a := C.int(10)b := C.int(20)c := C.Add(a, b)fmt.Println(c) // 30C.SayHello()
    }
    // hello.c#include <stdio.h>
    #include "hello.h"void SayHello()
    {printf("Hello, cgo!\n");
    }
    
    // hello.hvoid SayHello();
    
  3. 编译成库
    gcc -c hello.c
    ar -crv libhello.a hello.o
  4. 运行
http://www.lryc.cn/news/366377.html

相关文章:

  • python面向过程与初始面向对象编程
  • vue3 实现自定义指令封装 --- 通俗易懂
  • 5.31.15 使用图像到图像转换和 YOLO 技术对先前的乳房 X 光检查结果中的异常进行早期检测和分类
  • 题解web
  • 在keil5中打开keil4工程的方法
  • 【代码随想录算法训练营第37期 第二十四天 | LeetCode77. 组合】
  • 探索Linux中的`tree`命令:目录结构的可视化利器
  • ES 面试手册
  • Mybatis缓存的生命周期、使用的特殊情况
  • day 37 738.单调递增的数字
  • 【加密与解密】【01】网络安全体系
  • nvm,node不是内部命令,npm版本不支持问题(曾经安装过nodejs)
  • 从入门到精通:基础IO
  • 网络空间安全数学基础·多项式环与有限域
  • 路由器重启真的好吗?多久重启一次更好?
  • 删除目录
  • HCIP-Datacom-ARST自选题库__BGP/MPLS IP VPN判断【10道题】
  • 【Go语言精进之路】构建高效Go程序:掌握变量、常量声明法则与iota在枚举中的奥秘
  • python记录之bool
  • 加密经济浪潮:探索Web3对金融体系的颠覆
  • list的简单模拟实现
  • 深入解析Java HashMap的putVal方法
  • 使用智谱 GLM-4-9B 和 SiliconCloud 云服务快速构建一个编码类智能体应用
  • 关于vue2 antd 碰到的问题总结下
  • 常见的api:Runtime Object
  • Linux守护进程揭秘-无声无息运行在后台
  • python-Bert(谷歌非官方产品)模型基础笔记0.1.096
  • Linux的命令补全脚本
  • 前端 JS 经典:打印对象的 bug
  • 大型语言模型简介