go build编译失败:imports xxx/xxx/xxx: build constraints exclude all Go files in xxx/xxx/xxx

  我的第一份工作是做java开发的,后来增删改查写的没意思了,就转到大数据了。后来想了半年左右,感觉大数据并不适合自己,就又打算转回java。边复习边学习边找骑驴找驴,然而机缘巧合,找了一份go的工作,现在从事go开发。虽说语言只是工具,但还是有许多东西需要专门去学;也有一些坑得自己去踩。所以这段时间,又可以继续写博客了~
我自认为代码功底还算可以,所幸目前也没碰到go语法上的问题。碰到的多是设置问题。就像这次,碰到的问题是,go编译项目报错:imports xxx/xxx/xxx/xxx/xxx: build constraints exclude all Go files in xxx/xxx/xxx/xxx。
重点是: build constraints exclude all Go files in

反正看着肯定不是我代码写错了…应该是设置什么出问题了,然后就百度了半天。这里还是感慨一下:java就是好啊,碰到的问题基本都能搜到答案,而且都很靠谱。想起我刚学flink的时候,资料太少,经常搜flink的错误,出来的都是spark的解决方案…
因为是前几天搜的,所以这会也基本忘得都差不多了。印象里主流答案有两个:

  1. export GOOS=“linux”。即:将其设置为自己电脑所对应的系统
  2. export CGO_ENABLED=“1”。

我的电脑,第一个设置没有问题,所以修改了第二个设置。CGO就是可以让go调用c的一种特性(表述不太专业,欢迎大佬指正),要使用CGO特性,需要安装C/C构建工具链,在macOS和Linux下是要安装和GCC,在windows下是需要安装MinGW工具。同时需要保证环境变量CGO_ENABLED被设置为1,这表示CGO是被启用的状态。在本地构建时CGO_ENABLED默认是启用的,当交叉构建时CGO默认是禁止的。比如要交叉构建ARM环境运行的Go程序,需要手工设置好C/C交叉构建的工具链,同时开启CGO_ENABLED环境变量。然后通过import "C"语句启用CGO特性。
而我的 CGO_ENABLED 是0,当修改为1后,再编译,就正常了~
可能有人觉得这篇博客有点水,那你感觉对了…今天是2022.05.04,发一篇600字以上的博文可以获一个五一勋章~

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值