預設庫“library”與其他庫的使用衝突;請使用 /NODEFAULTLIB:library LNK4098 的解決辦法

來源:互聯網
上載者:User

 注意     
  執行階段程式庫現在包含可防止混合不同類型的指令。如果試圖在同一個程式中使用不同類型的執行階段程式庫或使用調試和非調試版本的執行階段程式庫,則將收到此警告。例如,如果編譯一個檔案以使用一種執行階段程式庫,而編譯另一個檔案以使用另一種執行階段程式庫(例如單線程執行階段程式庫對多線程執行階段程式庫),並試圖連結它們,則將得到此警告。應將所有源檔案編譯為使用同一個執行階段程式庫。有關更多資訊,請參見使用執行階段程式庫(/MD、/MT   和   /LD)編譯器選項。   
      
    
  可以使用連結器的   /VERBOSE:LIB   開關來確定連結器搜尋的庫。如果收到   LNK4098,並想建立使用如單線程、非調試執行階段程式庫的可執行檔,請使用   /VERBOSE:LIB   選項確定連結器搜尋的庫。連結器作為搜尋的庫輸出的應是   LIBC.lib,而非   LIBCMT.lib、MSVCRT.lib、LIBCD.lib、LIBCMTD.lib   和   MSVCRTD.lib。對每個要忽略的庫可以使用   /NODEFAULTLIB,以通知連結器忽略錯誤的執行階段程式庫。   
    
  下表顯示根據要使用的執行階段程式庫應忽略的庫。   
    
      
  若要使用此執行階段程式庫     請忽略這些庫       
  單線程   (libc.lib)   
    libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib   
      
  多線程   (libcmt.lib)   
    libc.lib、msvcrt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib   
      
  使用   DLL   的多線程   (msvcrt.lib)   
    libc.lib、libcmt.lib、libcd.lib、libcmtd.lib、msvcrtd.lib   
      
  調試單線程   (libcd.lib)   
    libc.lib、libcmt.lib、msvcrt.lib、libcmtd.lib、msvcrtd.lib   
      
  調試多線程   (libcmtd.lib)   
    libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、msvcrtd.lib   
      
  使用   DLL   的調試多線程   (msvcrtd.lib)   
    libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib   
      
(添加忽略庫的時候記著用分號隔開)
  例如,如果收到此警告,並希望建立使用非調試、單線程版本的執行階段程式庫的可執行檔,可以將下列選項與連結器一起使用:   
    
    
  /NODEFAULTLIB:libcmt.lib   /NODEFAULTLIB:msvcrt.lib   /NODEFAULTLIB:libcd.lib   /NODEFAULTLIB:libcmtd.lib   /NODEFAULTLIB:msvcrtd.lib   

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.