在mips架構的系統上安裝ipfs

2021-08-21 16:15:28 字數 1728 閱讀 6188

最近接到了乙個任務,在一塊板上除錯ipfs。所以呢,首先就要在板子上安裝ipfs,可是令人頭疼的是,那塊板的晶元架構是mips架構的,ipfs官網沒有提供支援mips架構的安裝包。我就想著,既然沒有,我就自己編譯乙個出來唄,接著就展開了以下工作,使用ipfs原始碼,編譯出適合mips架構的安裝包:

1.由於板子上沒有搭建go環境,不可以直接編譯go-ipfs,所以我就選擇在虛擬機器上先編譯好,再移植過去(有好處,請接著看)。虛擬機器上的golang版本是1.10版本的(可以選擇其他版本,但可能執行交叉編譯的時候有問題),虛擬機器是amd64架構的,不可以直接編譯出mips架構可以執行的檔案,因此需要進行交叉編譯。具體的交叉編譯步驟以下會簡單介紹,你也可以自行google或baidu。

2.獲取源**

go get -u -d github.com/ipfs/go-ipfs     //也可以使用git clone   獲取

3.編譯源**

export gopath=/root/code/go     //可以自定義目錄的

把源**放到   $gopath/src/github.com/ipfs/go-ipf 目錄下,執行以下命令

4.好了?不,早著呢!執行make install可能會遇到一大堆問題

1.設定交叉編譯環境:

export goos=linux

export goarch=mipsle

2.執行

make install

gx/ipfs/qmtemsynnckeq8refalfdhlhjrehgosgfdrayreuetn7mc/go-net/ipv4

../../../../../gx/ipfs/qmtemsynnckeq8refalfdhlhjrehgosgfdrayreuetn7mc/go-net/ipv4/icmp.go:34:2: undefined: sysicmpfilter

gx/ipfs/qmtemsynnckeq8refalfdhlhjrehgosgfdrayreuetn7mc/go-net/ipv6

../../../../../gx/ipfs/qmtemsynnckeq8refalfdhlhjrehgosgfdrayreuetn7mc/go-net/ipv6/icmp.go:34:2: undefined: sysicmpv6filter

就是說icmp.go檔案裡的sysicmpfilter、sysicmpv6filter等未定義,解決方法是:

首先,在gen.go檔案裡新增mipsle的判斷,可以參考接著從網上自行找乙份zsys_linux_mipsle.go檔案新增到對應得資料夾裡面,可以從以下鏈結嘗試尋找:

然後,再次執行make install,若還是以上問題,則需要在zsys_linux_mipsle.go檔案裡面新增sysicmpfilter結構,可以參考其他的zsys_linux檔案;接著遇到的問題也與以上的大同小異,解決方法也是修改zsys_linux_mipsle.go檔案(注意ipv4、ipv6的都要改)。

最好,再次執行make install,此時應該沒有什麼大問題了,生成的執行檔案在/root/code/go/bin/linux_mips/ipfs 路徑下。把對應的ipfs執行檔案移植到mips板子上,應該就可以執行成功了!

本文章為原創內容,未經允許,不得**!

在Mac系統上安裝Tomcat

1。mac中 finder開啟 library的方法 新建 finder視窗 按下 shift command g 輸入 library 進入 該隱藏目錄。ps 這個快捷鍵非常的有用,一定要記住!2。修改目錄許可權 選中 資料夾 command i 開啟 簡介,修改檔案許可權 命令 sudo chm...

在Linux系統上安裝MariaDB Mysql

使用centos7 64位 vm15pro 1.安裝mariadb 通過安裝命令 yum y install mariadb mariadb server 安裝 出現 完畢!則表示安裝成功 2.啟動mariadb 通過命令 systemctl start mariadb 啟動 3.設定開機啟動 通過...

在linux系統上安裝sublime

sublime text是收費軟體,但是可以無限試用,未授權版本在使用過程會彈出授權提示,但是不影響使用,支援sublime text可以去官網購買。下面以ubuntu為例 安裝gpg金鑰 wget qo sudo apt key add 確保apt已設定為使用https源 選擇要使用的頻道 sta...