iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何在构建 ARM64 二进制文件时忽略gotvm
  • 763
分享到

如何在构建 ARM64 二进制文件时忽略gotvm

2024-02-05 21:02:52 763人浏览 独家记忆
摘要

问题内容 我想构建我的 Go 存储库,以便在 goarch=arm64 时忽略 myrepo/gotvm/* 并在任何其他情况下构建完整的存储库。 项目文件夹结构如下: └── myr

问题内容

我想构建我的 Go 存储库,以便在 goarch=arm64 时忽略 myrepo/gotvm/* 并在任何其他情况下构建完整的存储库。

项目文件夹结构如下:

└── myrepo
    ├── go.mod
    ├── main.go
    ├── gotvm
    │   ├── array.go
    │   ├── device.go
    │   └── gotvm.go
    └── otherstuff
        └── otherstuff.go

在 amd64 上构建时一切正常:

goos=linux goarch=amd64 go build -o amdbuild main.go

基于 arm64 构建

goos=linux goarch=arm64 go build -o armbuild main.go

在不创建二进制文件之前出现以下错误:

package command-line-arguments
    imports GitHub.com/myrepo/gotvm: build constraints exclude all go files in /homedir/myrepo/gotvm

当我使用 package gotvm (array.go, device.go, gotvm.go) 将以下行添加到每个文件的顶部时,情况也是如此:

//go:build amd64
// +build amd64`

我尝试过的其他步骤:

  • go clean -modcache
  • 在属于 package gotvm 的所有文件上方(单独)添加以下构建标志
// go:build (darwin && cgo) || (linux && cgo)
//go:build amd64
// +build amd64`

这里有一个类似的问题:(模拟包) ,但这会忽略整个文件夹。我想忽略以 arch 不是 arm64 为条件的文件夹。

tl;dr; 有没有办法将我的存储库交叉编译为 arm64 和 amd64?我想在 arm64 构建中忽略 tvm。

规格:

  • go版本:go1.20.4 linux/amd64
  • 系统:ubuntu 20.04.5 lts


正确答案


将仅包含 package 子句的 go 文件添加到 gotvm 文件夹中可以解决此问题。例如,doc.go 文件:

// this file is a workaround for the following issue when built with goarch=arm64:
//
//   build constraints exclude all go files in /homedir/myrepo/gotvm

package gotvm

但是当你遇到这个问题时,大多数时候,这意味着至少有一个文件导入了这个包,并且goarch=arm64不排除这个文件。也许您应该从此文件中删除导入(或者对于 goarch=arm64 也排除此文件)。

我将添加一个演示来说明问题。这些是文件:

├── go.mod
├── gotvm
│   └── gotvm.go
└── main.go

go.mod

module example.com/m

go 1.20

gotvm/gotvm.go

//go:build amd64

package gotvm

import "fmt"

func f() {
    fmt.println("do awesome things using amd64")
}

ma​​in.go

package main

import (
    "fmt"

    _ "example.com/m/gotvm"
)

func main() {
    fmt.Println("Hello world!")
}

对于此演示,从 main.go 中删除 _ "example.com/m/gotvm" 或添加前面提到的 doc.go 文件即可解决该问题。我认为,最好从 main.go 中删除 _ "example.com/m/gotvm"

以上就是如何在构建 ARM64 二进制文件时忽略gotvm的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 如何在构建 ARM64 二进制文件时忽略gotvm

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

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

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

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

下载Word文档
猜你喜欢
  • 如何在构建 ARM64 二进制文件时忽略gotvm
    问题内容 我想构建我的 go 存储库,以便在 goarch=arm64 时忽略 myrepo/gotvm/* 并在任何其他情况下构建完整的存储库。 项目文件夹结构如下: └── myr...
    99+
    2024-02-05
  • linux如何在进行文件系统备份时,dump程序将忽略这个文件
    ...
    99+
    2024-04-02
  • idea提交文件时如何忽略某些文件的提交
    目录1、第一种方式是在idea的设置里面2、然后找到Editor-->File Types3、以上这种方式,适合对target编译文件进行过滤4、以下文件比如绑定自己ip5、打...
    99+
    2023-02-15
    idea提交文件 idea忽略提交文件 idea忽略某些文件提交
  • 如何在 Python 中读写二进制文件?
    在 Python 中,读写二进制文件是一项基本的任务。二进制文件通常包含非文本数据,例如图像、音频、视频等。 本文将向您介绍如何在 Python 中读写二进制文件。 什么是二进制文件? 在计算机中,所有数据都以二进制形式存储。二进制文件是一...
    99+
    2023-10-01
    文件 numpy javascript
  • 在Linux上如何分析二进制文件
    小编给大家分享一下在Linux上如何分析二进制文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!file它的作用:帮助确定文件类型。这将是你进行二进制分析的起点。我们每天都在与文件打交道,并非所有的文件都是可执行类型,除此...
    99+
    2023-06-16
  • vue上传项目到git时,如何忽略node_modules文件夹
    目录上传项目到git,如何忽略node_modules文件夹创建.gitignoe文件添加node_modules查看本地状态提交代码Git项目到码云时,没有上传node_modul...
    99+
    2024-04-02
  • 代码必须加载字体文件,如何嵌入到构建的二进制文件中
    在PHP开发中,加载字体文件是一项常见的需求。然而,为了确保字体文件的可用性和方便性,我们可能会考虑将字体文件嵌入到构建的二进制文件中。这样一来,我们就不再需要依赖外部的字体文件,而是...
    99+
    2024-02-09
    overflow
  • 5.7:Python如何读取二进制文件?
    随着信息技术的不断发展,二进制数据已经成为了现代计算机应用中不可或缺的一部分。在许多情况下,我们需要读取和处理二进制数据,这些数据可能包括图像、音频、视频、压缩文件等。Python作为一种流行的编程语言,提供了多种方法和库,可以帮助我们读取...
    99+
    2023-09-01
    java linux 开发语言
  • C#中如何读取二进制文件
    C#中如何读取二进制文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#读取二进制文件当想到所有文件都转换为 XML时,确实是一件好事。但是,这并非事实。仍旧...
    99+
    2023-06-18
  • Linux下如何执行二进制文件
    这篇文章主要为大家展示了“Linux下如何执行二进制文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux下如何执行二进制文件”这篇文章吧。二进制文件是我们几乎每天都需要打交道的文件类型,...
    99+
    2023-06-27
  • 构建试用或商业二进制文件并相应地更改运行时行为
    php小编小新教你如何构建试用或商业二进制文件,并相应地更改运行时行为。无论是为了保护软件版权,还是为了提供试用版,构建二进制文件是一个重要的步骤。通过更改运行时行为,可以实现一些功能...
    99+
    2024-02-09
  • 无法使用 docker 多阶段构建执行 go 二进制文件
    问题内容 我尝试按如下方式构建 go 应用程序,我的 main.go 文件位于 cmd/app/main.go。 但是,当我尝试运行 docker build --no-cache ....
    99+
    2024-02-06
    overflow
  • 如何使用python缓冲二进制文件
    这篇文章将为大家详细讲解有关如何使用python缓冲二进制文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前...
    99+
    2023-06-14
  • mysql如何打开二进制日志文件
    这篇文章主要介绍“mysql如何打开二进制日志文件”,在日常操作中,相信很多人在mysql如何打开二进制日志文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql如何打...
    99+
    2024-04-02
  • 如何使用 Golang 读写二进制文件?
    非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
    99+
    2024-05-15
  • linux如何查看二进制文件内容
    这篇文章主要介绍了linux如何查看二进制文件内容,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。hexdump是Linux下的一个二进制文件查看工具,它可以将二进制文件转换为...
    99+
    2023-06-05
  • Pytorch中如何使用ImageFolder读取数据集时忽略特定文件
    这篇文章主要介绍Pytorch中如何使用ImageFolder读取数据集时忽略特定文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、使用ImageFolder读取数据集时忽略特定文件如果事先知道需要忽略哪些文件,...
    99+
    2023-06-29
  • 从交叉编译的二进制文件 Go 应用 tarball 构建 RPM 包
    对于一个Golang开发者来说,牢固扎实的基础是十分重要的,编程网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《从交叉编译的二进制文件 Go 应用 tarball 构建 RPM 包》,主...
    99+
    2024-04-05
  • 在 golang 中创建静态二进制文件所需的标志
    编程网今天将给大家带来《在 golang 中创建静态二进制文件所需的标志》,感兴趣的朋友请继续看下去吧!以下内容将会涉及到等等知识点,如果你是正在学习Golang或者已经是大佬级别了,都非常欢迎也希...
    99+
    2024-04-04
  • C\C++如何实现读写二进制文件
    这篇文章主要介绍“C\C++如何实现读写二进制文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C\C++如何实现读写二进制文件”文章能帮助大家解决问题。读写二进制文件打开文件fopen() 函数用...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作