2010年1月25日 星期一

本機編譯好的程序無法在沒有裝VC的機子上運行

由於VC++2005默認採用動態鏈接運行時庫,導致編譯好的程序在運行時依賴於本機的運行時庫,當然移植到別的機子上就不能運行了。
對於一般的win32控制台程序,可以這樣設置:
  • 點擊"項目"--- "屬性",打開項目屬性頁,點擊"配置屬性"--- "C/C++"--- "代碼生成",將此頁面右邊的"運行時庫"由默認的"多線程DLL(/MD)"改為"多線程(/MT)"或"多線程調試(/MTD)"即可。 不過一般情況下生成release版本的應用程序時選"多線程(/MT) "即可,因為這樣生成的exe程序較小。 而如果選了"多線程調試(/MTD) ",則由於加入了大量的調試信息而使生成的exe程序會增大好幾倍。 (project ->XXX property page ->configuration properties ->C/C++ ->Code Generation ->Runtime Lib.)

  • 對於MFC程序,則點擊"項目"--- "屬性",打開項目屬性頁,點擊"配置屬性"--- "常規",將右邊"項目默認值"欄目中的"MFC的使用"改為"在靜態庫中使用MFC"。確定後,在"配置屬性"--- "C/C++"--- "代碼生成"頁面的"運行時庫"會自動改為靜態鏈接----即"多線程(/MT)"。這樣編譯出來的程序就可以在沒有裝VC的機子上運行了。


原文出處:http://www.acejoy.com/space/html/56/t-956.html

沒有留言:

張貼留言