2017年10月26日 星期四

CRT程式庫與靜態程式庫

最近為了寫一個與IE有關的程式用VC來開發
但是呢,為了將64與32的程式放在一起所以要使用靜態程式庫的方式
因為這兩個要用的DLL同名所以要分開放

找了半天都看不是很懂網路上介紹的方式
後來找到微軟的網頁
才把這個功能搞定, 紀錄一下以免以後忘了
一般來說要使用靜態程式庫要在專案的屬性頁找到執行階段程式庫這個設定


使用/MT 或 /MTd 就可以讓大部份的程式變成不需要額外的DLL就可以執行
因為VC有將大部分的LIB包含進來

但是如果要使用的程式庫不是預設的就要自己加
我要用的是 vcruntime 這個程式庫所以就要查剛剛那個網頁
找到連結器的其他相依性來設定需要用到的 LIB 檔案
如此就可以編譯過了

例外要注意的是除錯版本微軟都有標示不可轉散發
所以為了避免有相關的問題還是使用Release的版本