首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

交叉編譯修改 Makefile 仍產生本機架構執行檔?檢查編譯器變數與 configure 參數

     編輯:程式設計綜合問答

CentOS 上使用交叉編譯工具鏈編譯軟體,修改 Makefile 中的 CC 變數為 mips-linux-gcc,但 file 指令顯示產出仍為 Intel 80386 架構。

常見原因排查

  1. configure 階段未指定 host:
    ./configure --host=mips-linux --build=x86_64-linux 必須在生成 Makefile 前指定目標架構
  2. Makefile 變數未生效:
    檢查 CC、CXX、AR、STRIP 等是否全數指向交叉工具鏈前綴
  3. 環境變數干擾:
    export CC=mips-linux-gcc CXX=mips-linux-g++ 在執行 configure 前設定
  4. 專案不支援交叉編譯:
    部分專案(如 OpenResty)需確認官方文件是否支援目標架構

驗證步驟

# 1. 確認工具鏈可用
mips-linux-gcc --version

# 2. 清理重來
make distclean
./configure --host=mips-linux CC=mips-linux-gcc CXX=mips-linux-g++
make

# 3. 驗證產出
file output_binary
# 應顯示 MIPS 架構

進階建議

若專案使用 CMake,請編寫 Toolchain.cmake 指定交叉編譯參數,比手改 Makefile 更可靠。若仍失敗,可直接聯繫專案維護者(如 OpenResty 作者)詢問支援情況。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved