多執行緒執行庫的問題

2021-06-18 05:30:44 字數 1738 閱讀 5003

libcmt.lib(crt0dat.obj) : error lnk2005: _exit already defined in msvcrt.lib(msvcrt.dll)

libcmt.lib(crt0dat.obj) : error lnk2005: __exit already defined in msvcrt.lib(msvcrt.dll)

libcmt.lib(crt0init.obj) : error lnk2005: ___xc_z already defined in msvcrt.lib(cinitexe.obj)

libcmt.lib(crt0init.obj) : error lnk2005: ___xc_a already defined in msvcrt.lib(cinitexe.obj)

libcmt.lib(crt0init.obj) : error lnk2005: ___xi_z already defined in msvcrt.lib(cinitexe.obj)

libcmt.lib(crt0init.obj) : error lnk2005: ___xi_a already defined in msvcrt.lib(cinitexe.obj)

libcmt.lib(winxfltr.obj) : error lnk2005: __xcptfilter already defined in msvcrt.lib(msvcrt.dll)

link : warning lnk4098: defaultlib "msvcrt.lib" conflicts with use of other libs; use /nodefaultlib:library

link : warning lnk4098: defaultlib "libcmt" conflicts with use of other libs; use /nodefaultlib:library

libcmt.lib(crt0.obj) : error lnk2001: unresolved external symbol _main

release/資料庫端.exe : fatal error lnk1120: 1 unresolved externals

執行 link.exe 時出錯.

涉及到多執行緒程式設計。若使用到動態庫時,沒有問題。用靜態庫,由於lib衝突,會出現編譯錯誤。

1.使用靜態庫鏈結

2.設定-》c/c++->分類(code generation)->use run time library(選擇md)

3.在設定-》c/c++->分類(常規)-》預處理定義裡加入 ,_afxdll 

4. 屬性,鏈結器,輸入,忽略指定庫 libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib 

debug模式下編譯出現如下錯誤:

libcmt.lib(invarg.obj) : error lnk2005: __initp_misc_invarg already defined in libcmtd.lib(invarg.obj)

主要原因是鏈結了兩個庫libcmt and libcmtd,以至於出現already defined。

解決辦法:

1.確保當前工程的runtime library和引用lib的runtime library相同便可以解決問題

比如:lib庫的runtime library是md,當前工程也得設定為md。

2.in debug mode,在debug命令列中加上/force:multiple 

VC多執行緒執行庫的解決

4.執行緒內部細節 1.createthread 和 beginthreadex 區別 createthread是系統api,beginthreadex是crt c run time library 執行時庫 函式.beginthreadex內部會呼叫createthread函式。endthread...

mysql vc執行庫 VC 執行庫安裝

vc 執行庫 visual c 可再發行程式包 是執行使用相應版本的 visual c 開發的應用程式時必要的元件。wampserver內建的apache mysql mariadb和php就依賴vc 執行庫,所以我們需要在電腦上安裝好vc 執行庫,否則無法正常使用wampserver。wampse...

執行庫實現

堆的實現 io與檔案操作 字串相關操作 格式化字串 helloworld程式無須用到的功能就不實現,比如異常 盡量簡化設計,盡量符合c 標準庫的規範 對於可以直接在標頭檔案實現的模組盡量在標頭檔案中實現,以免諸多的類 函式的宣告和定義造成 量膨脹,不便於演示 執行庫 要做到可以在windows和li...