2016-11-30 169 views
0

我正試圖在x86系統上爲MIPS構建OATH Toolkit。我想產生一個靜態構建,所以它很可能適用於任何MIPS系統。如何交叉編譯oath-toolkit的靜態鏈接MIPS構建?

只是爲了更精確的目標系統上的支持ISA是:mips1 mips2 mips32r1 mips32r2

從我的理解,我需要爲了做這個準備工具鏈,我成功地配置和構建buildroot所以現在我有它裏面~/buildroot-2016.08.1/output/target

我該如何使用/激活buildroot,以建立檢查把oath-toolkit代碼?

注:我不是被迫使用buildroot,所以我會考慮任何替代方案。

回答

2

只需運行帶有合適參數的configure腳本即可將Buildroot編譯器用作交叉編譯器,並使參數靜態鏈接。

./configure --enable-static --disable-shared \ 
    --target=mips-buildroot-linux-gnu --host=mips-buildroot-linux-gnu \ 
    CC=$HOME/buildroot-2016.08.1/output/host/usr/bin/mips-linux-gcc 

以上假設您使用的是glibc和big-endian MIPS。請檢查~/buildroot-2016.08.1/output/host/usr/mips*的目錄名稱,以獲取--target/--host選件的正確值以及~/buildroot-2016.08.1/output/host/usr/bin的內容,以獲取CC=選件的正確值。

請注意,您必須選擇「MIPS 32」架構變型(BR2_mips_32)要與所有目標系統兼容。

還要注意,對於glibc,您可能沒有完全靜態鏈接的可執行文件,因爲它會嘗試動態加載NSS庫。這是例如如果使用getaddrinfo來解析主機名。你需要使用uClibc或musl來避免這種情況。