LNK1104: cannot open file 'LIBC.lib' 2009-05-23 09:49
如果將用低版本的VC開發的項目,拿到高版本的VC開發環境上去編譯,連結時也許會觸發LNK1104錯誤。解決方案是連結時忽略此庫,在此提供兩種解決方案: Project | Properties | Configuration Properties | Linker | Input Ignore Specific Library: libc.lib 或 #pragma comment(linker, "/NODEFAULTLIB:libc.lib") |
•Run-Time Library是編譯器提供的標準庫,提供一些基本的庫函數和系統調用。
我們一般使用的Run-Time Library是C Run-Time Libraries。當然也有Standard C++ libraries。
C Run-Time Libraries實現ANSI C的標準庫。VC安裝目錄的CRT目錄有C Run-Time庫的大部分原始碼。 C Run-Time Libraries有靜態庫版本,也有動態連結程式庫版本;有單線程版本,也有多線程版本;還有調試和非調試版本。 •動態連結程式庫版本:
/MD Multithreaded DLL 使用匯入庫MSVCRT.LIB
/MDd Debug Multithreaded DLL 使用匯入庫MSVCRTD.LIB •靜態庫版本:
/ML Single-Threaded 使用靜態庫LIBC.LIB
/MLd Debug Single-Threaded 使用靜態庫LIBCD.LIB
/MT Multithreaded 使用靜態庫LIBCMT.LIB
/MTd Debug Multithreaded 使用靜態庫LIBCMTD.LIB
若要使用此執行階段程式庫 |
請忽略這些庫 |
單線程 (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 |