VS2010中如何將動態鏈接庫改成靜態鏈接庫


 VS2010中如何將動態鏈接庫改成靜態鏈接庫

  VS2010靜態編譯生成的.exe可執行文件,可以免安裝免DLL在其他電腦直接運行。
  靜態編譯:就是在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴動態鏈接庫。
1. 編譯實現方式有兩種
  【1】debug方式的靜態鏈接:
  設置:
  (1)項目 -> 配置屬性->常規->MFC的使用:在靜態庫中使用MFC(如果有使用MFC)。
  (2)項目 -> 配置屬性->C/C++->代碼生成->運行庫 :選擇 多線程調試(/MTd)。
 
  編譯時,選擇的是debug,win32
  然后執行編譯生成方案,在該工程目錄下的debug文件中,找到該.exe文件,即可在其他電腦運行。
  debug方式生成的.exe文件會比較大,因為它包含了一些調試用的信息。
 
  【2】release方式, 就是正式版發行版
  一般可以配置以下兩項:
  (1)項目 -> 配置屬性->常規->MFC的使用 :在靜態庫中使用MFC(如果有使用MFC)。
  (Project—Properties—Configuration Properties—General—Use of MFC—Use MFC in a Static Library)
  (2)項目 -> 配置屬性->C/C++->代碼生成->運行庫 :選擇 多線程(/MT)。
  (Project—Properties—Configuration Properties—C/C++—Code Generation—Runtime Library—Multi-threaded(/MT))
 
  編譯時,選擇的是release(這個選擇項在工具欄的debug下拉列表中),win32。
  然后執行編譯生成方案,在該工程目錄下的release文件中,找到該.exe文件,即可在其他電腦運行。
 

2. 可能出現的問題

(1)提示一些庫缺失

  解決:則需要把相應缺失的庫添加到exe當前目錄

  例如:把相應的glut32.dll添加到exe當前目錄即可處理

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM