LNK2001: Unresolved External Symbol __imp__GetTickCount64@0
这个链接错误的发生在链接MSVCRT.lib时,原因是链接了的错误版本kernel32.lib等库。修改link条件,把/LIBPATH:“libpath”这个改为正确的path就可以了。如果自己写makefile文件,在使用编译器,链接器,头文件,和库时,要特别小心。如果使用了第三方的库要看这个第三方的库是用什么版本的CRT(运行时库)编译的,是多线程版的还是单线程版的,用Unicode的还是ASCII的。
LINK : fatal error LNK1101: incorrect MSPDB80.DLL version; 这个错误是在使用cl.exe命令行编译时出现的错误,原因是VC\Bin\下没有“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件。 解决的方法:
- 直接从Common7\IDE\下复制这四个文件到VC\Bin\下即可解决
- 添加系统变量(Path),这样:我的电脑->属性->高级->环境变量->系统变量,在path中添加C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;,注意结尾最后用“;”隔开!
附注:
RUN-TIME LIBRARYRun-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
- msvcrt.lib 使用多线程 DLL 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
- msvcrtd.lib 使用多线程调试 DLL libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib
设置方法:属性,链接器,输入,忽略指定库 libc.lib、libcmt.lib、msvcrt.lib、libcd.lib、libcmtd.lib (使用一个,忽略其他的)