Windows多執行緒應用程式的編譯和鏈結

2022-02-23 01:34:16 字數 817 閱讀 2411

編譯多執行緒應用程式的第一步是要確保編譯器使用了正確的執行時庫:ms為c執行時庫提供了幾個不同的實現。這些版本在以下3個標準上有所不同:鏈結方式(靜態or動態)、是否可再入(有乙個庫是為單執行緒應用程式設計的,是不可再入的;另乙個庫是為多執行緒設計的,是可再入的)、以及是否包含除錯符號。

開關 含義

/mt 使用靜態鏈結的多執行緒應用程式

/mtd

多執行緒應用程式除錯使能

/md 多執行緒動態鏈結庫

/mdd

多執行緒動態鏈結庫除錯 使能

支援c程式的微軟多執行緒庫:

程式型別

c執行時庫

多執行緒程式

libcmt.lib

支援除錯的多執行緒程式

libcmtd.lib

多執行緒dll程式

msvcrt.lib(msvcrt.dll的引入庫)

支援除錯的dll程式

msvcrtd.lib(msvcrtd.dll的引入庫)

支援c++程式的微軟多執行緒庫:

程式型別

c++執行時庫

多執行緒程式

libcpmt.lib

支援除錯的多執行緒程式

libcpmtd.lib

多執行緒dll程式

msvcprt.lib(也使用msvcrt.dll)

支援除錯的dll程式

msvcprtd.lib(也使用msvcrtd.dll)

開發人員不能在單個程序空間中混合使用靜態和動態庫。當乙個exe檔案用到乙個dll時,需要有開發人員保證使用相同版本的c執行時庫來正確的構建exe和dll。

more:

建立多執行緒應用程式

定義命名空間在.net中,多執行緒功能是在system.threading命名空間中定義的。usingsystem.threading 啟動執行緒system.threading命名空間中的thread類代表乙個執行緒物件,用這個類物件可以建立新的執行緒,刪除 暫停和恢復執行緒。下面的 使用thre...

建立多執行緒應用程式

定義命名空間 在.中,多執行緒功能是在system.threading命名空間中定義的。usingsystem.threading 啟動執行緒 system.threading命名空間中的thread類代表乙個執行緒物件,用這個類物件可以建立新的執行緒,刪除 暫停和恢復執行緒。下面的 使用threa...

建立多執行緒應用程式

定義命名空間 在.net中,多執行緒功能是在system.threading命名空間中定義的。using system.threading 啟動執行緒 system.threading命名空間中的thread類代表乙個執行緒物件,用這個類物件可以建立新的執行緒,刪除 暫停和恢復執行緒。下面的 使用t...