A. 動態編譯和靜態編譯有何主要區別
靜態編譯與動態編譯的區別
1、動態編譯的可執行文件需要附帶一個的動態鏈接庫,在執行時,需要調用其對應動態鏈接庫中的命令。所以其優點一方面是縮小了執行文件本身的體積,另一方面是加快了編譯速度,節省了系統資源。缺點一是哪怕是很簡單的程序,只用到了鏈接庫中的一兩條命令,也需要附帶一個相對龐大的鏈接庫;二是如果其他計算機上沒有安裝對應的運行庫,則用動態編譯的可執行文件就不能運行。
2、靜態編譯就是編譯器在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴於動態鏈接庫。所以其優缺點與動態編譯的可執行文件正好互補。
B. Opencv怎麼靜態編譯(VS2012下)
靜態編譯,需要把你的lib文件拷貝到當前目錄下,然後在你的應用程序里寫上如下語句
#pragma comment(lib,"opencv_core243d")這個樣子。
C. 靜態編譯和動態編譯有何不同
靜態編譯就是把庫函數編譯到你的程序里 這樣編譯的好處是 可以適應不同的平台 如果你是用window系統的話不建議用靜態編譯 因為這樣會使你的代碼量增大
動態編譯就是不把庫函數編譯到你的程序里
D. vs2013如何靜態編譯
項目屬性-配置屬性-常規-MFC的使用-使用標准Windows庫(不用MFC)
然後,C/C++-代碼生成-運行庫-多線程/MT或者多線程調試/MTd
帶d的是鏈接調試版本,DEBUG項目選/MTd,Release項目選/MT
如果使用MFC,在MFC的使用中設置靜態、動態鏈接,代碼生成中必須使用<從上級繼承>
E. vs2005 2008如何設置靜態編譯
靜態編譯?你指的是MFC靜態鏈接吧。
在你的VC項目上單擊右鍵,點擊屬性,然後看配置屬性裡面的常規項,在右面的MFC使用中選擇「在靜態庫中使用MFC」就可以了。
注意,上面一欄「配置」里,Debug和Release都要改。
F. 如何設置vc2010靜態編譯就是可以讓exe在別人的電腦上也運行的。
項目-屬性-配置屬性-常規 里的「MFC的使用」 改為在「靜態庫中使用MFC」
G. VS開發的文件編譯成靜態太大,用什麼工具編
MFC本身就是「肥代碼」(FatCode)的,
代碼冗餘量極大,
要想文件小,
就不要使用MFC,可以使用ATL,或者純API。
H. VS2010 C3 wnform 如何靜態編譯
不行吧,你用NET FrameWork 2.0或3.0編譯一下,一般現在的電腦都自帶裝2.0或其他de的了
I. vs2010為什麼設置了靜態編譯還是需要dll文件才能運行exe
靜態編譯:就是在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴動態鏈接庫。
編譯方式:
第1種:
設置:
1、項目->配置屬性->常規->MFC的使用:在靜態庫中使用MFC
2、項目 -> 配置屬性->C/C++->代碼生成->運行庫 :選擇 多線程調試(/MTd)。
編譯時,選擇的是debug,win32
然後執行編譯生成方案,在該工程目錄下的debug文件中,找到該.exe文件,即可在其他電腦運行。
第2種:
一般可以配置一下兩項:
1.項目 -> 配置屬性->常規->MFC的使用 :在靜態庫中使用MFC。
2.項目 -> 配置屬性->C/C++->代碼生成->運行庫 :選擇 多線程調試(/MT)。
編譯時,選擇的是release,win32(這個選擇項在工具欄的debug選框中,一般我們使用debug方式)