在unix的shell下,可以利用變數來節省麻煩,例如:
export DAS2440_BUILD_PATH=~/tmp/build
export DAS2440_FILE_PATH=~/dl/s3c2440
export DAS2440_INSTALL_PATH=/opt/host
cd $DAS2440_BUILD_PATH
tar xfj $DAS2440_FILE_PATH/s3c2440/binutils-2.11.2.tar.bz2
cd binutils-2.11.2
./configure --target=armv4l-unknown-linux --prefix=$DAS2440_INSTALL_PATH/armv4l
make
su -c "make install"
這樣一來,如果要改變任何一個目錄,只要改變變數即可
但是,這是有風險的,而今天就發生在我的身上
事情是這樣的,上面是我改過的版本,之前的版本是
export DAS2440_INSTALL_PATH=/opt/host/armv4l
cd $DAS2440_BUILD_PATH/gcc-2.95.3
./configure --target=armv4l-unknown-linux --with-libs=$DAS2440_INSTALL_PATH/lib --with-headers=$DAS2440_INSTALL_PATH/include --prefix=$DAS2440_INSTALL_PATH
make LANGUAGES="c c++"
su -c "make LANGUAGES="c c++" install"
結果,我在執行最後一步時,忘了設定DAS2440_INSTALL_PATH的值(理論上應該一開始就設好,不過因為我還在try這個方法,所以沒設到),結果安裝的時候就安裝到根目錄下,而且,安裝的不是別隻程式,而是libc,所以我的x86的libc就被換成arm的libc了,然後,後面的程式就無法執行了,而且,也開不了機了。改善的方法,就是把安裝路徑往上縮一層,這樣即使變數忘記設定,也不至於安裝到根目錄下了。
沒有留言:
張貼留言