【发布时间】:2014-05-03 00:51:05
【问题描述】:
我想测试 snappy 库,但是在编译我的项目时出现 2 个错误:
1>main.obj:错误 LNK2019:无法解析的外部符号“bool __cdecl snappy::Uncompress(char const *,unsigned int,class std::basic_string,class std::allocator > *)”(?Uncompress@snappy @@YA_NPBDIPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 在函数_main中引用
1>main.obj:错误 LNK2019:无法解析的外部符号“unsigned int __cdecl snappy::Compress(char const *,unsigned int,class std::basic_string,class std::allocator > *)”(?Compress@ snappy@@YAIPBDIPAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) 在函数_main中引用
致命错误 LNK1120:2 个未解决的外部问题
#pragma comment(lib,"snappy32.lib")
#include <snappy.h>
#include <snappy-c.h>
#include <snappy-sinksource.h>
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
string buffer = "0=EURCHF|1=1.21541|2=1.21547|5=20140318T075959.728388|15=1.21547|16=1.21551|17=1.21553|18=1.21555|19=1.21556|20=1.21559|21=1.21576|22=1.21584|115=1000000|116=2000000|117=3500000|118=3000000|119=5000000|120=9000000|121=1000000|122=2000000|315=1.21541|316=1.21537|317=1.21535|318=1.21533|319=1.21532|320=1.21531|321=1.21529|322=1.21518|323=1.2151|324=1.21489|415=500000|416=1000000|417=1000000|418=5000000|419=5000000|420=2000000|421=9000000|422=500000|423=2000000|424=7000000|720=500000|721=1000000";
string output;
size_t compressedSize = snappy::Compress(buffer.data(),buffer.size(),&output);
printf("%s",output.c_str());
string uncompressedBuffer;
bool result = snappy::Uncompress(output.data(),output.size(),&uncompressedBuffer);
printf("%s\n",uncompressedBuffer.c_str());
return 0;
}
我在我的项目属性中添加了包含 lib 和 snappy32.lib 的目录。
【问题讨论】:
-
仔细检查这是正确的库,它包含压缩和解压缩功能
-
尝试使用引用库中的其他内容。如果它有效,那么压缩可能不是静态的?