目录

go 代码调用第三方包正常构建报 undefined

目录

go 代码调用第三方包正常,但是构建报 undefined

问题

get, err := utils.Get(a.Url, nil, params)
    if err != nil {
        logs.Errorf("Get %s err:%v", a.Url, err)
        return nil, err
    }

utils.Get 是自定义封装的库

文件正常调用了 utils.Get,也没有报错。但是build

application\model.go:75:18: undefined: utils.Get

编译器没有提示错误,导包也是正常的,但是执行 go build 或者 go run 时缺提示 undefined

解决

这是因为导入的包中引用了 C 代码,可以打开 导入的函数所在的文件 xxx.go,Goland 工具可以看到文件顶部会有提示

'xxx.go' is ignored by the build tool because of the cgo support mismatch

大部分情况是因为 idea 自动导包导错了

方法一:

打开文件,找到 import ‘C’ ,删除即可,重新编译即可

方法二:

如果确实需要导入 C 代码,则

安装配置 cgo 的编译环境(没试过)