返回顶部
首页 > 资讯 > 后端开发 > GO >编写Linux可执行文件:使用GitLab创建(Go环境)
  • 277
分享到

编写Linux可执行文件:使用GitLab创建(Go环境)

2024-04-04 23:04:57 277人浏览 薄情痞子
摘要

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《编写linux可执行文件:使用gitLab创建(Go环境)》,以下内容主要包含等知识点,如果你正在学习或准备学习golang,就都不要错

学习知识要善于思考,思考,再思考!今天编程网小编就给大家带来《编写linux可执行文件:使用gitLab创建(Go环境)》,以下内容主要包含等知识点,如果你正在学习或准备学习golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我正在尝试为我的 go 项目制作一个 linux 可执行文件。我的 gitlab 项目中的 .config-ci.yml 中有以下配置。

demo_job_1:
    tags:
        - cpf
        - cpf-test
        - testing
        - unit-testing
    script:
        - go run test/main.go
        - goos=linux goarch=amd64 go build
        - go env
        - cd test
        - ./test
        - echo successfully run and built

运行此管道后,当我签入 env 文件时,我仍然得到 goos=windows。如何构建我的项目,以便构建后的输出是 linux 可执行文件。现在,我正在获取仅在 windows 上运行的 .exe 文件。

您可以在以下gitlab中查看项目详细信息:

https://gitlab.com/smilekison/test

这是管道作业显示的错误:

$ go run test/main.go
Hello world
$ GOOS=linux GOARCH=amd64 go build

GOOS=linux : The term 'GOOS=linux' is not recognized as the name of a cmdlet, function, script file, or operable 
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\WINDOWS\TEMP\build_script487326907\script.ps1:207 char:1
+ GOOS=linux GOARCH=amd64 go build
+ ~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (GOOS=linux:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


解决方案


首先要解决您的实际错误:您似乎使用的是基于 windows 的运行程序。这意味着您必须使用 windows cmd 命令。它不知道 env 等。

您可以改为执行 go env -w goos="linux" 。与goarch相同。然后运行 ​​go build .

您还可以使用变量部分用环境变量覆盖 go env

variables:
  goos: "linux"
  goarch: "amd64"

它位于 gitlab 文件顶部的某个位置。

这是我使用 Docker 容器的 go 项目的典型构建管道:

build_app:
  image: golang:1.15.3
  stage: build
  allow_failure: false
  tags:
    - unix
  script:
    - go mod download
    - mkdir $ci_project_dir/release
    - cd cmd/app
    - goos=linux goarch=amd64 go build -o $ci_project_dir/release/app .
  artifacts:
    paths:
      - $ci_project_dir/release

测试管道

go_test:
  image: golang:1.15.3
  stage: verify
  allow_failure: false
  tags:
    - unix
  script:
    - go mod download
    - go test -race -cover ./...

这是基于使用 docker 镜像构建的运行器。

我需要编写 go env -w goos="linux" goarch="amd64"linux重命名为windows,我就可以制作go语言在这里使用 image : golang:1.15.7 进行安装。这样我的 .gitlab-ci.yml 文件就可以安装 go lang 并且可以运行任何 go 命令。

demo_job_1:
stages:
  -build
    
build:
  stage: build
  image : golang:1.15.7
  tags:
    - cpf
    - cpf-test
    - testing
    - unit-testing
  script:
    - go run test/main.go
    - go env -w GOOS=linux GOARCH=amd64
    - go env
    - cd test
    - ./test
    - echo Successfully run and Built

今天关于《编写Linux可执行文件:使用GitLab创建(Go环境)》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

您可能感兴趣的文档:

--结束END--

本文标题: 编写Linux可执行文件:使用GitLab创建(Go环境)

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

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

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

  • 微信公众号

  • 商务合作