-1 后期本文修订
后期编辑:这篇文章在发布后作者发现了下文有很多不正确的地方,请批判看待
之所以写在前面,是因为后来作者发现了问题的核心原因并非作者下文所述。证明的点在于:比如为什么CGO_ENABLED是需要再交叉编译情况下开启的,但是arm64是作者当时本机的架构,不应该涉及交叉编译。
实际上,在M1上安装了arm架构的go语言就不会存在任何问题,但是不小心装了intel x86_64架构的go语言就会给作者造成本文所述的困扰。所以如果有遇到相同问题的朋友,请先确保自己在本机装了对应架构的go。如果一定需要再本机使用Intel版本的Go的朋友,估计也很清楚该怎么解决问题了,但是不清楚的可以往下看看。
0. 背景
第0、1章是随便啰嗦几句做个日记,如果想看解决方案的病友请直接去2或3.
最近由于公司项目,需要使用Go语言连接TDEngine实现一些增删改查。由于本人即是Go新手,又是TDEngine新手,在第一个链接测试的代码实现上就碰上了一个坑。
本人使用的是M1的Macbook Pro + GoLand + Go 1.17 + TDEngine 3.x,从官网下载了arm64版本的TDEngine Client,兴高采烈写了如下TDEngine的Helloworld:
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/taosdata/driver-go/v3/taosSql"
)
func main() {
var taosDSN = "root:taosdata@tcp(localhost:6030)/"
taos, err := sql.Open("taosSql", taosDSN)
if err != nil {
log.Fatalln("failed to connect TDengine, err:", err)
return
}
fmt.Println("Connected")
if _, err

文章讲述了作者在M1Mac上使用Go语言连接TDEngine时遇到的编译错误,错误原因是使用了非匹配架构的Go环境。通过检查和分析,作者发现Go的编译目标是x86_64而非本机的arm64,通过设置GOARCH=arm64和启用CGO解决了问题。解决方案包括确保安装正确架构的Go,以及设置环境变量进行编译。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



