當前位置:首頁 » 編程軟體 » golang編譯程序

golang編譯程序

發布時間: 2023-04-30 20:56:45

⑴ Go 是怎麼使用 Go 來編譯自身的

  1. Go是一個圖靈完備的語言

  2. 任何圖靈完備的語言理論上都可以用來編譯自身。比如c/c++, java, vb, php等等都可以。

至於怎麼編譯自身的:

  1. 用其它語言比如c++實現一個[Go語言編譯器-1]

  2. 用Go語言寫一個[Go語言編譯器-2]

  3. 用這個c++實現的[Go語言編譯器-1]編譯第2步裡面說的Go語言寫的[Go語言編譯器-2]

  4. 用第3步得到的[Go語言編譯器-2],再編譯一次第2步裡面說的[Go語言編譯器-2]的源碼

  5. OK,現在有一個Go語言實現的編譯器了,最開始那個c++寫的編譯器沒用了,可以扔掉不要了。以後就不停的優化使用這個Go語言實現的自身的編譯器就行了。

⑵ golang 跨平台編譯

只需要指定目標操作系統的平台和處理器架構即可:

因為不支持CGO,所以要禁用CGO

然後再執行go build命令,得到的就是能夠在linux平台運行的可執行文件了。

Mac 下編譯 Linux 和 Windows 平台 64位 可執行程序:

Linux下編譯 Mac 和 Windows 平台64位可執行程序:

Windows下編譯Mac平台64位可執行程序:

整個過程看起來非常簡單,運行起來也非常簡單,調用make release命令,並給VERSION變數賦值不同的版本號即可:

命令會編譯出不同平台可運行的壓縮包:

⑶ Mac下交叉編譯linux golang程序

一、背景介紹

    閑來無事,申請了台aws伺服器在家搞點小東東,用golang做了個小東東,想放上去。自己的電腦是mac電腦,起初忘記了交叉編譯的事,直接編譯了下直接扔到aws,運行的時候出現了不可以運行的二進制格式提示。

二、交叉編譯的過程

     1、隨手網路了下,很多文章都寫的「CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build」(不知你搜索到的是不是這個結果),看到這也挺簡單,分別是禁用cgo,指定目標系統,指定目標CPU體系架構,然後編譯。

  按照網路出來的建議,嘗試在電腦上編譯了下,提示如下錯誤,如果沒有出現錯誤的可以不用往下看了哈。

2、如第一步所述,是將CGO關閉的狀態,如果程序用到了CGO,是不是就需要將CGO放開?將CGO放開又會是什麼現象?具體如下:

從上述的錯誤信息可以看出來,環境變數是生效的,確實是linux體系架構了。

3、繼續網路,https://blog.csdn.net/zhaoli081223/article/details/121255583 終於發現這篇文章非常不錯,在這里和大家分享下,按照文章的操作就可以解決問題了,而且裡面有非常詳細的講解。

⑷ 怎麼編譯golang寫的程序為系統服務

設置GOPATH,這個環境變數指向你的projectDir(工程目錄),形如:GOPATH=/home/user/ext:/home/user/projectDir (可以設置多個工程目錄,linux下用冒號分隔,windows下用分號分隔)
創建工程文件夾projectDir
在projectDir下創建src目錄
在src下創建區分包的文件夾myDir
在myDir下創建包pkgDir
在pkgDir下創建package source源代碼文件,這些文件的package都是pkgDir

熱點內容
怎麼寫腳本刷視頻 發布:2025-07-10 08:49:51 瀏覽:381
安卓微信在哪裡設置鈴聲 發布:2025-07-10 08:48:05 瀏覽:232
dropbear編譯 發布:2025-07-10 08:27:35 瀏覽:684
我的世界電腦建造伺服器推薦 發布:2025-07-10 08:13:08 瀏覽:401
如何提高存儲數據的速度 發布:2025-07-10 07:55:57 瀏覽:259
規范c語言代碼 發布:2025-07-10 07:55:57 瀏覽:516
在線砍價源碼 發布:2025-07-10 07:55:56 瀏覽:796
編程工作年限 發布:2025-07-10 07:44:42 瀏覽:143
vc壓縮文件夾 發布:2025-07-10 07:43:56 瀏覽:450
汽貿解壓 發布:2025-07-10 07:43:56 瀏覽:877