談談交叉編譯

2021-08-15 13:23:43 字數 543 閱讀 2606

1、在宿主機(通常是linux伺服器)安裝編譯工具鏈arm-linux-***

那麼,如何編譯出可在目標機上執行的程式呢?

1、使用./configure -h檢視configure選項,通常有--host=  --target=選項,用於指定使用的交叉編譯工具鏈及目標機target(交叉編譯的大部分是arm),如編譯工具鏈為arm-linux-gcc,則執行./configure --host=arm-linux即可,執行後可以check 下生成的makefile檔案中的gcc等編譯命令是否有對應的arm-linux 字首

2、configure成功後便可執行make命令編譯了,然後用file命令確認下編譯出來的elf檔案格式(這邊對應的是arm),如果編譯出的是可執行程式,就可以放到宿主機上執行了

3、執行bin檔案的時候有時會執行失敗,比如報sh: no such file or directory錯誤;這是因為bin檔案執行時找不到依賴的so檔案,被當成shell指令碼執行了,解決方法可參考此部落格:sh: no such file or directory問題

good luck!

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...