概述
交叉編譯,也稱跨平臺編譯,就是在一個平臺上編譯源代碼,生成結(jié)果為另一個平臺上的可執(zhí)行代碼。這里的平臺包含兩個概念:體系架構 (如 AMD, ARM) 和 操作系統(tǒng) (如 Linux, Windows)。同一個體系架構可以運行不同的操作系統(tǒng),反過來,同一個操作系統(tǒng)也可以運行在不同的體系架構上。
Go 實現(xiàn)跨平臺編譯的思想其實很簡單:通過保存可以生成最終機器碼的多份翻譯代碼, 在編譯時根據(jù) GOARCH=體系架構 和GOOS=操作系統(tǒng)參數(shù)進行初始化設置, 最終調(diào)用對應平臺編寫的特定方法來生成機器碼,從而實現(xiàn)跨平臺編譯。
例子
下面的例子統(tǒng)一以 amd64 作為體系架構參數(shù),讀者請根據(jù)自己的環(huán)境更換對應參數(shù)。
Mac
編譯為 Linux 代碼
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
編譯為 Windows 代碼
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Linux
編譯為 Mac 代碼
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
編譯為 Windows 代碼
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Windows
編譯為 Mac 代碼
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
編譯為 Linux 代碼
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Linux系統(tǒng)
+關注
關注
4文章
615瀏覽量
30125 -
機器碼
+關注
關注
0文章
13瀏覽量
8523 -
交叉編譯器
+關注
關注
0文章
10瀏覽量
7920
發(fā)布評論請先 登錄
相關推薦
熱點推薦
電機試驗電源制動單元工程化計算及應用
制動單元工程化計算及應用.pdf
【免責聲明】本文系網(wǎng)絡轉(zhuǎn)載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內(nèi)容!
發(fā)表于 04-27 19:31
嵌入式系統(tǒng)工程化設計要注意哪些方面
嵌入式系統(tǒng)工程化設計7——計算機可靠性設計原創(chuàng)·林超100前一講高可靠性是嵌入式系統(tǒng)的關鍵設計因素,但是講到的內(nèi)容是普適性的,對任何帶電子設備的設備都需要。但是針對信息處理和控制的嵌入式計算機
發(fā)表于 11-08 06:51
嵌入式系統(tǒng)工程化設計的相關資料分享
了行業(yè)的飛速發(fā)展,可以說這個行業(yè)在風口上。但是,也發(fā)現(xiàn)我們的行業(yè)的不足,基礎嚴重依賴國外,企業(yè)設計能力參差不齊,從業(yè)人員培訓費時費力,導致產(chǎn)品可靠性低下,項目遭受重大損失。解決這一問題,需要提升我國嵌入式計算機工程化設計能力。什么是工程化首先什么是
發(fā)表于 11-09 06:37
監(jiān)控系統(tǒng)中控制軟件的工程化設計與實現(xiàn)
主要探討微機監(jiān)控系統(tǒng)中控制軟件的工程化設計方法,介紹了模塊化程序設計和結(jié)構化程序設計的基本原理,具體分析了在電鍋爐微機控制系統(tǒng)中,采用模塊化程序設計和結(jié)構
發(fā)表于 03-18 10:33
?21次下載
CSS工程化實踐成果分析
作為Web開發(fā)的重要組成部分,CSS技術演進也在推動著前端工程化不斷進步。本文將從CSS模塊化、namespace約束、CSS in JS方案三個方面逐步深入解讀CSS在工程化領域取得的成果
發(fā)表于 09-27 15:10
?0次下載
嵌入式交叉編譯環(huán)境的搭建解析
5.1.1 嵌入式交叉編譯環(huán)境的搭建 交叉編譯的概念在第4章中已經(jīng)詳細講述過,搭建交叉編譯環(huán)境是
發(fā)表于 10-18 16:44
?1次下載
arm-linux的交叉編譯環(huán)境解析
的主要原因在于,多數(shù)嵌入式目標系統(tǒng)不能提供足夠的資源供編譯過程使用,因而只好將編譯工程轉(zhuǎn)移到高性能的主機中進行。 linux下的交叉編譯環(huán)境
發(fā)表于 10-31 11:26
?7次下載
ST微電子STM8的C交叉編譯用戶指南
《STM8交叉編譯器用戶指南》是程序員為STM8微控制器環(huán)境編寫C程序的參考指南。它概述了交叉編譯器的工作原理,并解釋了如何
發(fā)表于 06-04 08:00
?12次下載
嵌入式系統(tǒng)工程化設計
了行業(yè)的飛速發(fā)展,可以說這個行業(yè)在風口上。但是,也發(fā)現(xiàn)我們的行業(yè)的不足,基礎嚴重依賴國外,企業(yè)設計能力參差不齊,從業(yè)人員培訓費時費力,導致產(chǎn)品可靠性低下,項目遭受重大損失。解決這一問題,需要提升我國嵌入式計算機工程化設計能力。什么是工程化首先什么是
發(fā)表于 11-04 10:21
?15次下載
交叉編譯器安裝教程
交叉編譯器中“交叉”的意思就是在一個架構上編譯另外一個架構的代碼,相當于兩種架構“交叉”起來了。Ubuntu 自帶的 gcc
Linux交叉編譯選項與源碼與目標文件分離
交叉編譯選項 編譯Linux,通常只需要運行 make menuconfig 配置要編譯的模塊,然后運行 make 。Linux默認是做本地編譯
Go工程化-交叉編譯概述
評論