perl 交叉編譯

2021-08-18 05:19:16 字數 1565 閱讀 9048

編譯前的準備

原始碼包:perl-5.22.4.tar.gz        交叉編譯補丁包:perl-5.10.0-cross-0.1.tar.gz

解壓 perl-5.22.4.tar.gz 在x86上進行./configure.gnu  和make  得到乙個 generate_uudmap 可執行檔案,儲存備用

開始編譯:

解壓 perl-5.22.4.tar.gz,perl-5.10.0-cross-0.1.tar.gz

解壓完後把perl-5.10.0-cross-0.1.tar.gz 解壓出來的檔案全部拷貝到 perl-5.22.4/ 目錄,然後進入perl-5.22.4/cross目錄

修改config檔案(下面是我用的)

### target arch

arch = arm

#arch = i386-pc

#arch = sh4

#arch = mips

#arch = mipsel

#arch = ppc

## specific arm

config_target_arm_sa11x0 = 1

#config_target_arm_xscale = 1

### target os

os = hisiv600-linux

#os = solaris2.8

修改為config還得修改乙個檔案的名字(原名是 config.sh-arm-linux)

然後再修改makefile,如果makefile檔案是下面的樣子就不用修改了

export topdir=$

include $(topdir)/config

export cflags

export sys=$(arch)-$(os)

export cross=$(arch)-$(os)-

export full_optimization = -fexpensive-optimizations -fomit-frame-pointer -o2

export optimization = -o2

export cc = $(cross)gcc

export cxx = $(cross)g++

export ld = $(cross)ld

export strip = $(cross)strip

export ar = $(cross)ar

export ranlib = $(cross)ranlib

開始編譯:make patch  成功後再 make perl  會遇到 無法執行generate_uudmap,因為是交叉編譯的,所以無法執行,把前面儲存的generate_uudmap替換過來,再make perl,可以編譯出

雖然失敗了,但是miniperl已經編譯出來了,這裡交叉編譯出來miniperl的無法執行是正確的

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的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 ...