推 FlyinDeath:推這篇~解釋的很清楚 ^^ 61.217.98.148 12/03 11:22
※ 引述《Aligu1009.bbs@ptt.cc (=.=)》之銘言:
> 我們平常寫C/C++, java等
> 寫完後編譯產生執行 (或class) 檔
> 然後就可以執行了
> 但 為什麼一堆軟體都要有install的動作呢?
> install,然後才能執行
> 直接有個執行檔給人點個兩下 開始動作 不也很直覺嗎?
> 為什麼會有install檔這樣的東西呢? 謝謝
這真是個有趣的問題:)
你寫一個程式時,當程式在執行時會去 load 一些 DLL 檔
這些 DLL 檔可能是微軟 OS 提供的,或者是一些套裝軟體
提供的,比如 office,所以當你 compile 好你的程式之後
再把程式丟到另一台電腦執行,你可能會發現無法執行,因
為某個 DLL 找不到,當你把這個 msgbox 告訴你所欠缺的
DLL copy 到你要執行的電腦時,幸運的話也許就正常執行
了,但如果不幸的話,它將會告訴你又欠缺了什麼 DLL 檔
這時候很可能你必須 copy 好幾個 DLL 檔你的程式才得以
執行
所以這時候如果你用一些工具把你的程式包裝成 setup.exe
這個 setup.exe 它自己會去 check 這台電腦有哪些 DLL
沒有裝上,它會幫你裝上。
比如你寫 DirectX 的遊戲,需要 DirectX Runtime Lib,
maybe 這台電腦用的是 DirectX 8,但你的電腦開發環境是
DirectX 9,這時候如果你有用到一些 9 才有的 function
問題就會產生了。但幸運的是,這時候我們口中的 setup.exe
將會負責打理好這一切,包括版本的 check,安裝的過程中
若有需要也會尋問 user 是否 replace DLL
如果只想要一個執行檔,比如只用 printf 或者你是用組合
語言開發的,只用到一些 OS 就會提供的 DLL,可能就不大
需要 install,但通常越高階的語言或開發工具就越會有
dependency 的問題,而且通常也會越複雜。
--
◣█ .尋找今晚屬於你的夢境.
ˍˍˍ ˍˍˍˍˍ________
◥ ▌ˍ ▌ ▌ˍˍ █ ◤尋夢位址:corp-nat.taipei.corp.yahoo.com
▌ ▌ˍ ˍˍ █ 國立虎尾科技大學.尋夢園 bbs.nfu.edu.tw◢