iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >使用 dep 运行 go vet 时找不到头文件
  • 153
分享到

使用 dep 运行 go vet 时找不到头文件

2024-04-04 23:04:28 153人浏览 安东尼
摘要

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《使用 dep 运行 Go vet 时找不到头文件》带大家来了解一下##content_

golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《使用 dep 运行 Go vet 时找不到头文件》带大家来了解一下##content_title##,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发


问题内容

在我的项目中使用供应商的依赖项运行 go vet 时,我收到此错误。

$ go vet ./...
# <project path...>/vendor/GitHub.com/ethereum/go-ethereum/crypto/secp256k1
vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/curve.go:42:10: fatal error: libsecp256k1/include/secp256k1.h: No such file or directory
 #include "libsecp256k1/include/secp256k1.h"

我以为这是开发环境中缺少的依赖项,但是当查看原始项目源时,包含路径是相对于源文件的。

为什么找不到文件?


解决方案


go 的一些依赖管理工具不提供项目引用的所有代码。这意味着在某些情况下,可以在 cgo 的 go 文件中使用的 c 代码不会包含在供应商目录中。

我使用两个单独的供应商工具两次遇到此问题,但有工作可以支持这些 use cases。

到目前为止我发现的最简单的方法是使用govendor,然后导入完整的目录以确保所有需要的文件都在那里。这是一个非常简单的解决方案,忽略了在 go 项目中包含 c 依赖项的许多复杂性,但修复了问题,但没有永久解决该问题。

go get github.com/kardianos/govendor
govendor init
govendor add +e
# remove the directory that is missing the c dependencies
rm -rf ./vendor/github.com/ethereum/go-ethereum/crypto/secp256k1/
# add the file and include all files
# https://github.com/kardianos/govendor/issues/247
govendor add github.com/ethereum/go-ethereum/crypto/secp256k1/^

gopkg.toml 中您可以添加

[prune]
  go-tests = true
  unused-packages = true
  non-go = true

  [[prune.project]]
    name = "github.com/ethereum/go-ethereum"
    non-go = false
    unused-packages = false

以上就是《使用 dep 运行 go vet 时找不到头文件》的详细内容,更多关于的资料请关注编程网公众号!

您可能感兴趣的文档:

--结束END--

本文标题: 使用 dep 运行 go vet 时找不到头文件

本文链接: https://www.lsjlt.com/news/596049.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作