亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 一個我覺得很蹊蹺的事情 [打印本頁]

作者: karl412    時間: 2007-06-11 14:21
標題: 一個我覺得很蹊蹺的事情
下面是我寫的一個shell腳本 很簡單 就是到一個目錄下 執(zhí)行make
但是我發(fā)現(xiàn)一個問題:
如果是我手動make完一個模塊后,執(zhí)行可執(zhí)行文件,什么問題都沒有
但是我使用下面這個shell腳本自動編譯完成后,執(zhí)行可執(zhí)行文件時就會報錯:

Dependent module libexpat.a(libexpat.so.1) could not be loaded
Cannot load module libexpat.a(libexpat.so.1)


覺得非常蹊蹺 同樣是make 只不過一個是手動cd到一個目錄然后敲入make進行編譯
一個是自動跳到一個目錄然后自動編譯 為什么一個有錯 一個沒錯呢?
是不是有什么shell編程的機制我還不明白?


  1. #!/usr/bin/sh
  2. # Written by karl412 on 2007-06-10
  3. # auto-make all modules

  4. MPPSRC_DIR=/home/mpp/src.work

  5. mppd_make() {
  6.         echo "\n+++++++++++++++++++MPPD+++++++++++++++++++++\n"
  7.         cd $MPPSRC_DIR/mppd
  8.         make clean;make
  9. }

  10. mppcrond_make() {
  11.         echo "\n+++++++++++++++++++MPPCROND+++++++++++++++++++++\n"
  12.         cd $MPPSRC_DIR/mppcrond
  13.         make clean;make
  14. }

  15. err_msg() {
  16.         if [ $? != 0 ]
  17.         then
  18.                 echo "\n++++++++++++++There is something wrong in $1++++++++++++\n"
  19.                 exit
  20.         fi
  21. }

  22. # Shell  Begin
  23. if [ $# != 1 ]
  24. then
  25.         echo "[Usage]: make.sh module_name"
  26.         echo "[ Note]: if module_name is 'all', then compile all modules "
  27.         exit
  28. fi

  29. case $1 in
  30. mppd )
  31.         mppd_make; err_msg "MPPD"
  32.         exit;;
  33. mppcrond )
  34.         mppcrond_make; err_msg "MPPCROND"  
  35.         exit;;
  36. all )
  37.         mppd_make; err_msg "MPPD"
  38.         mppcrond_make; err_msg "MPPCROND"
  39.         exit;;
  40. esac
復制代碼

作者: karl412    時間: 2007-06-11 14:45
我用的是sh
AIX默認的是ksh
這個或許會影響到環(huán)境變量的定義
是不是這個原因呢?
作者: tommy2004    時間: 2007-06-11 15:02
原帖由 karl412 于 2007-6-11 14:21 發(fā)表
下面是我寫的一個shell腳本 很簡單 就是到一個目錄下 執(zhí)行make
但是我發(fā)現(xiàn)一個問題:
如果是我手動make完一個模塊后,執(zhí)行可執(zhí)行文件,什么問題都沒有
但是我使用下面這個shell腳本自動編譯完成后,執(zhí)行可執(zhí)行 ...



你運行這個腳本的時候有沒有用. ./ufile ?還是./ufile ?
如果是./ufile 運行后,cd到哪個目錄環(huán)境變量就不能傳到父進程了,必須要. ./ufile才行.
作者: karl412    時間: 2007-06-11 16:58
問題似乎解決了

原因是我在Makefile中 定義MYLIBPATH=../lib

如此定義變量 只能在當前目錄下才能執(zhí)行可執(zhí)行文件(這個是在AIX下才發(fā)現(xiàn)的問題,在LINUX下沒有這個問題)




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2