"error LNK2019: 在函数...中未解析的外部符号inflateInit2"。
如果我没有链接库,则这并不奇怪。我链接了静态发布的zlib库。我已经成功地在不同的解决方案中使用相同的库和头文件配置,因此这种行为非常出乎意料。任何建议将不胜感激。
链接器命令行:
"/OUT:"C:\Documents and Settings\Suthke\My Documents\Visual Studio 2010\Projects\SBRapGen2\Debug\SBRapGen2.exe" /INCREMENTAL /NOLOGO "zlib.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /MANIFEST /ManifestFile:"Debug\SBRapGen2.exe.intermediate.manifest" /ALLOWISOLATION /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"C:\Documents and Settings\Suthke\My Documents\Visual Studio 2010\Projects\SBRapGen2\Debug\SBRapGen2.pdb" /SUBSYSTEM:CONSOLE /PGD:"C:\Documents and Settings\Suthke\My Documents\Visual Studio 2010\Projects\SBRapGen2\Debug\SBRapGen2.pgd" /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86 /ERRORREPORT:QUEUE"
链接器详细输出:
1>------ Build started: Project: SBRapGen2, Configuration: Release Win32 ------ 1>
1> Starting pass 1 1> Processed /DEFAULTLIB:uuid.lib 1> Processed /DEFAULTLIB:msvcprt 1> Processed /DEFAULTLIB:zlib.lib 1> Processed /DEFAULTLIB:MSVCRT 1> Processed /DEFAULTLIB:OLDNAMES 1>
1> Searching libraries 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\zlib.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\user32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\gdi32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\winspool.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\comdlg32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\advapi32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\shell32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\ole32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\oleaut32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\uuid.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbc32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbccp32.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\msvcprt.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\MSVCRT.lib: 1> Found @__security_check_cookie@4 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(secchk.obj) 1> Found __imp__sprintf 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__ceil 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__free 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__malloc 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__printf 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__fopen 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__fread 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__fwrite 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__ftell 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__fseek 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__fclose 1> Referenced in SBRapGen2.obj 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found _mainCRTStartup 1> Loaded MSVCRT.lib(crtexe.obj) 1> Found ___report_gsfailure 1> Referenced in MSVCRT.lib(secchk.obj) 1> Loaded MSVCRT.lib(gs_report.obj) 1> Found ___security_cookie 1> Referenced in MSVCRT.lib(secchk.obj) 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Loaded MSVCRT.lib(gs_cookie.obj) 1> Found __IMPORT_DESCRIPTOR_MSVCR100 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found ___CxxSetUnhandledExceptionFilter 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(unhandld.obj) 1> Found __amsg_exit 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp____getmainargs 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __dowildcard 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(wildcard.obj) 1> Found __newmode 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(_newmode.obj) 1> Found _atexit 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(atonexit.obj) 1> Found __RTC_Terminate 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(initsect.obj) 1> Found __imp___cexit 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp___exit 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __XcptFilter 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp__exit 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp____initenv 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __IsNonwritableInCurrentImage 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(pesect.obj) 1> Found __initterm 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found ___xc_a 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(cinitexe.obj) 1> Processed /DEFAULTLIB:kernel32.lib 1> Processed /DISALLOWLIB:libcmt.lib 1> Processed /DISALLOWLIB:libcmtd.lib 1> Processed /DISALLOWLIB:msvcrtd.lib 1> Found __initterm_e 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found ___native_startup_state 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(natstart.obj) 1> Found __SEH_epilog4 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded MSVCRT.lib(sehprolg4.obj) 1> Found __except_handler4 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Referenced in MSVCRT.lib(pesect.obj) 1> Referenced in MSVCRT.lib(sehprolg4.obj) 1> Loaded MSVCRT.lib(chandler4gs.obj) 1> Found __imp___configthreadlocale 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found ___globallocalestatus 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(xthdloc.obj) 1> Found __setdefaultprecision 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(fp8.obj) 1> Found __imp____setusermatherr 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __matherr 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(merr.obj) 1> Found __setargv 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(dllargv.obj) 1> Found __commode 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(xncommod.obj) 1> Found __imp___commode 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp___fmode 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __fmode 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(xtxtmode.obj) 1> Found __imp____set_app_type 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found ___security_init_cookie 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded MSVCRT.lib(gs_support.obj) 1> Found __crt_debugger_hook 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __NULL_IMPORT_DESCRIPTOR 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found MSVCR100_NULL_THUNK_DATA 1> Referenced in MSVCRT.lib(MSVCR100.dll) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found "void __cdecl terminate(void)" (?terminate@@YAXXZ) 1> Referenced in MSVCRT.lib(unhandld.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __unlock 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found ___dllonexit 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __lock 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __imp___onexit 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __except_handler4_common 1> Referenced in MSVCRT.lib(chandler4gs.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __invoke_watson 1> Referenced in MSVCRT.lib(fp8.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Found __controlfp_s 1> Referenced in MSVCRT.lib(fp8.obj) 1> Loaded MSVCRT.lib(MSVCR100.dll) 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\zlib.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib: 1> Found __imp__InterlockedExchange@8 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__Sleep@4 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__InterlockedCompareExchange@12 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__HeapSetInformation@16 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__EncodePointer@4 1> Referenced in MSVCRT.lib(crtexe.obj) 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__TerminateProcess@8 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__GetCurrentProcess@0 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__UnhandledExceptionFilter@4 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__SetUnhandledExceptionFilter@4 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Referenced in MSVCRT.lib(unhandld.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__IsDebuggerPresent@0 1> Referenced in MSVCRT.lib(gs_report.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__DecodePointer@4 1> Referenced in MSVCRT.lib(atonexit.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__QueryPerformanceCounter@4 1> Referenced in MSVCRT.lib(gs_support.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__GetTickCount@0 1> Referenced in MSVCRT.lib(gs_support.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__GetCurrentThreadId@0 1> Referenced in MSVCRT.lib(gs_support.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__GetCurrentProcessId@0 1> Referenced in MSVCRT.lib(gs_support.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __imp__GetSystemTimeAsFileTime@4 1> Referenced in MSVCRT.lib(gs_support.obj) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found __IMPORT_DESCRIPTOR_KERNEL32 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Found KERNEL32_NULL_THUNK_DATA 1> Referenced in kernel32.lib(KERNEL32.dll) 1> Loaded kernel32.lib(KERNEL32.dll) 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\user32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\gdi32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\winspool.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\comdlg32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\advapi32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\shell32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\ole32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\oleaut32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\uuid.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbc32.lib: 1> Searching C:\Program Files\Microsoft SDKs\Windows\v7.0A\lib\odbccp32.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\msvcprt.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\MSVCRT.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib: 1> Searching C:\Program Files\Microsoft Visual Studio 10.0\VC\lib\zlib.lib: 1>
1> Finished searching libraries 1>
1> Finished pass 1 1>
1>SBRapGen2.obj : error LNK2001: unresolved external symbol _deflateEnd 1>SBRapGen2.obj : error LNK2001: unresolved external symbol inflateInit2 1>SBRapGen2.obj : error LNK2001: unresolved external symbol _inflate 1>SBRapGen2.obj : error LNK2001: unresolved external symbol _inflateEnd 1>SBRapGen2.obj : error LNK2001: unresolved external symbol _deflate 1>SBRapGen2.obj : error LNK2001: unresolved external symbol deflateInit2
_inflateInit2_
末尾的下划线是干什么用的?也许这就是问题所在。 - TonyK