编译UltraVNC时的Debug版本时遇到vncclient.obj : error LNK2019: unresolved external symbol _compress等错误

来源:互联网 发布:淘宝头条一篇多少钱 编辑:程序博客网 时间:2024/05/29 23:45

当在Debug版本时编译UltraVNC 1.0.9.6.1版本的winvnc源码时会遇到如下错误

1>------ Build started: Project: winvnc, Configuration: Debug Win32 ------
1>Performing Pre-Link Event...
1>buildtime.cpp
1>Linking...
1>vncclient.obj : error LNK2019: unresolved external symbol _compress referenced in function "protected: int __thiscall vncClient::SendCacheZip(class std::vector<struct rfb::Rect,class std::allocator<struct rfb::Rect> > const &)" (?SendCacheZip@vncClient@@IAEHABV?$vector@URect@rfb@@V?$allocator@URect@rfb@@@std@@@std@@@Z)
1>vncEncodeZlib.obj : error LNK2001: unresolved external symbol _compress
1>vncclient.obj : error LNK2019: unresolved external symbol _adler32 referenced in function "public: int __thiscall vncClient::GenerateFileChecksums(void *,char *,int)" (?GenerateFileChecksums@vncClient@@QAEHPAXPADH@Z)
1>vncclient.obj : error LNK2019: unresolved external symbol _uncompress referenced in function "public: bool __thiscall vncClient::ReceiveFileChunk(int,int)" (?ReceiveFileChunk@vncClient@@QAE_NHH@Z)
1>vncEncodeTight.obj : error LNK2019: unresolved external symbol _deflateEnd referenced in function "public: virtual __thiscall vncEncodeTight::~vncEncodeTight(void)" (??1vncEncodeTight@@UAE@XZ)
1>vncEncodeZlib.obj : error LNK2001: unresolved external symbol _deflateEnd
1>vncEncodeZlibHex.obj : error LNK2001: unresolved external symbol _deflateEnd
1>rdr.lib(ZlibOutStream.obj) : error LNK2001: unresolved external symbol _deflateEnd
1>vncEncodeTight.obj : error LNK2019: unresolved external symbol _deflate referenced in function "protected: int __thiscall vncEncodeTight::CompressData(unsigned char *,int,int,int,int)" (?CompressData@vncEncodeTight@@IAEHPAEHHHH@Z)
1>vncEncodeZlib.obj : error LNK2001: unresolved external symbol _deflate
1>vncEncodeZlibHex.obj : error LNK2001: unresolved external symbol _deflate
1>rdr.lib(ZlibOutStream.obj) : error LNK2001: unresolved external symbol _deflate
1>vncEncodeTight.obj : error LNK2019: unresolved external symbol _deflateParams referenced in function "protected: int __thiscall vncEncodeTight::CompressData(unsigned char *,int,int,int,int)" (?CompressData@vncEncodeTight@@IAEHPAEHHHH@Z)
1>vncEncodeTight.obj : error LNK2019: unresolved external symbol _deflateInit2_ referenced in function "protected: int __thiscall vncEncodeTight::CompressData(unsigned char *,int,int,int,int)" (?CompressData@vncEncodeTight@@IAEHPAEHHHH@Z)
1>vncEncodeZlib.obj : error LNK2001: unresolved external symbol _deflateInit2_
1>vncEncodeZlibHex.obj : error LNK2001: unresolved external symbol _deflateInit2_
1>rdr.lib(ZlibInStream.obj) : error LNK2019: unresolved external symbol _inflateInit_ referenced in function "public: __thiscall rdr::ZlibInStream::ZlibInStream(int)" (??0ZlibInStream@rdr@@QAE@H@Z)
1>rdr.lib(ZlibInStream.obj) : error LNK2019: unresolved external symbol _inflateEnd referenced in function "public: virtual __thiscall rdr::ZlibInStream::~ZlibInStream(void)" (??1ZlibInStream@rdr@@UAE@XZ)
1>rdr.lib(ZlibInStream.obj) : error LNK2019: unresolved external symbol _inflate referenced in function "private: void __thiscall rdr::ZlibInStream::decompress(void)" (?decompress@ZlibInStream@rdr@@AAEXXZ)
1>rdr.lib(ZlibOutStream.obj) : error LNK2019: unresolved external symbol _deflateInit_ referenced in function "public: __thiscall rdr::ZlibOutStream::ZlibOutStream(class rdr::OutStream *,int,int)" (??0ZlibOutStream@rdr@@QAE@PAVOutStream@1@HH@Z)
1>.\..\Debug/winvnc.exe : fatal error LNK1120: 11 unresolved externals
1>Build log was saved at "file://e:\工作\UltraVNC_1.0.9.6.1 (1)\UltraVNC\winvnc\Debug\BuildLog.htm"
1>winvnc - 21 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


遇到这情况时修改一下zlibstat项目的属性->Configuration Properties->C/C++->Preprocessor->Preprocessor Definitions里面的ZLIB_WINAPI去掉


当在Debug版本时编译UltraVNC 1.0.9.6.1版本的vncviewer源码时会遇到如下错误

1>------ Build started: Project: vncviewer, Configuration: Debug Win32 ------
1>Setting build time...
1>buildtime.cpp
1>Linking...
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_finish_decompress referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_finish_decompress
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_read_scanlines referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_read_scanlines
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_destroy_decompress referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_destroy_decompress
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_start_decompress referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_start_decompress
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_read_header referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_read_header
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_CreateDecompress referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_CreateDecompress
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_std_error referenced in function "private: void __thiscall ClientConnection::DecompressJpegRect(int,int,int,int)" (?DecompressJpegRect@ClientConnection@@AAEXHHHH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_std_error
1>ClientConnectionTight.obj : error LNK2019: unresolved external symbol _jpeg_resync_to_restart referenced in function "void __cdecl JpegSetSrcManager(struct jpeg_decompress_struct *,char *,int)" (?JpegSetSrcManager@@YAXPAUjpeg_decompress_struct@@PADH@Z)
1>ClientConnectionUltra2.obj : error LNK2001: unresolved external symbol _jpeg_resync_to_restart
1>.\Debug/vncviewer.exe : fatal error LNK1120: 8 unresolved externals

这时可以用编译libjpeg-turbo-win工程中的DebugLib-Static版本,然后从DebugLib-Static文件夹中将libjpeg-turbo-win-static-d.lib库复制到x64\DebugDll-Static文件夹中,然后修改libjpeg-turbo-win-static-d.lib的文件名为jpeg-turbo-win-static-d.lib。

或者在vncviewer的项目属性->Linker->Command Line->Additional options中如果是Rlease版本就添加"ReleaseLib-Static\libjpeg-turbo-win-static.lib",如果是Debug版本就添加"DebugLib-Static\libjpeg-turbo-win-static-d.lib"

原创粉丝点击