tcl原始碼:
.sourceforge
.net/project/tcl/tcl/8.6
.4/tcl8.6
.4-src.tar
.gzexpect原始碼:
.sourceforge
.net/project/expect/expect/5.45/expect5.45
.tar
.gz
由於 expect 是基於 tcl 語言的,所以需要先編譯 tcl。
交叉編譯 tcl
tcl 直接交叉編譯,會提示重複定義失敗,所以先執行下面的宣告
export tcl_cv_type_64bit="long long"
export ac_cv_c_bigendian=no
export tcl_cv_strtod_buggy=1
export ac_cv_func_strstr=yes
export ac_cv_func_opendir=yes
然後 生成 makefile
.
/configure--
prefix=$pwd/tmp--
host=i486
-openwrt
-linux--
build=i686
-linux#-
-prefix
安裝路徑#-
-host
平台架構(編譯出的程式在哪個平台執行,就用那個平台的工具鏈名去掉
gcc)#-
-build
編譯的主機
生成 makefile 之後 就執行
make
# make 之後有提示錯誤,就解決掉錯誤
# 提示少某個標頭檔案,就去找個頭檔案 cp 過去。這次我缺少的標頭檔案,有一部分是直接拿的pc的標頭檔案
# make 之後 執行 make install
# 注意設定的安裝路徑
make install
交叉編譯 expect
由於 expect 不支援交叉編譯,所以生成 makefile 時需要先用 x86 的 gcc,生成 makefile 之後在修改 makefile 的cc
./configure --prefix=$pwd/tmp --with-tcl=/home/gino
/tcl8.6.4/unix
/tmp/lib --with-tclinclude=/home/gino
/tcl8.6.4/unix
/tmp/include
# --with-tcl 指定tcl安裝目錄下的lib路徑(要交叉編譯過的)
# --with--tclinclude 指定tcl安裝目錄下的 include 路徑
修改 makefile
cc = i486-openwrt
-linux
-gcc
.
/configure--
prefix=$pwd/tmp--
host=i486
-openwrt
-linux--
build=i686
-linux
make
#make
有錯,想辦法搞定
make
install
將安裝目錄的 lib目錄下、include目錄下的檔案,拷貝到交叉工具鏈下對應的目錄
cp lib/* /opt/openwrt-i386-gcc/lib
cp inlucde/* /opt/openwrt-i386-gcc/include
做完這些之後,去到 expect 目錄,繼續執行 make,還是會報錯。需要改 expect 的 makefile
修改之後的內容如下:
expect: exp_main_exp.o $(pkg_lib_file)
$(cc) \
-pipe $ $ $ \
-wl,--export-dynamic \
-o expect exp_main_exp.o \
-l/work/src/openwrt_x86/expect5.45 -lexpect5.45 \
-l/work/src/openwrt_x86/expect/tcl8.4.20/unix/tmp/lib -ltcl8.4 \
-ldl -lieee1284 -lutil -lm \
-wl,-rpath,$ \
-wl,-rpath,$/$$
$(setuid) expect
再次 make 就成功了。
測試執行
要在目標機上執行這個程式,需要把交叉編譯後的 tcl(安裝目錄下) ieee(安裝目錄下) 的庫檔案(安裝目錄下的lib下的所有檔案) 以及 expect的動態庫(libexpect5.45.so) 和 expect的執行檔案都拷貝到目標機器上。
本文參考:
系統移植 核心移植
irom soc samsung固化的位址 iram soc 256k dram 片上外設 記憶體 norflash 讀快 啟動u boot noneflash 寫快 啟動u boot emmc 包括noneflash和讀寫noneflash的控制器 sdmmc sd卡 bl1 bl2 1.irom...
移植安裝mysql mysql移植問題
今天在實際開發中對於mysql資料庫進行移植發生的問題來說下.開始把本地data中的資料庫檔案拷貝到另一台機子上test,執行show tables 可以看到資料庫表,但是對錶進行任何操作都報錯 表不存在 原以為mysql的資料庫檔案 frm copy stick到本地安裝mysqldb目錄的dat...
系統移植 移植涉及的工作
1 移植涉及的工作 a 系統軟體 1 引導程式 初始化硬體,其目的為載入核心 2 核心 系統乙個核心功能的 3 檔案系統 內容 格式 b 編譯器 交叉編譯 在主機環境編譯,其編譯結果在目標環境下執行 2 交叉編譯器安裝 在linux環境下安裝軟體相當於windows下的綠色軟體,只解壓,然後配 置環...