C++ Boost二进制文件读取错误不支持的版本
我正在做序列的序列化 在windows系统中,我通过boost::序列化生成二进制文件 看来没问题 但是,如果我将这个二进制文件移动到linux系统并加载二进制文件 编译器说不支持的版本 我对这个问题一无所知 有人能帮我们吗 Windows和linux的Boost版本是相同的。boost版本为1_63_0C++ Boost二进制文件读取错误不支持的版本,c++,linux,serialization,boost,binaryfiles,C++,Linux,Serialization,Boost,Binaryfiles,我正在做序列的序列化 在windows系统中,我通过boost::序列化生成二进制文件 看来没问题 但是,如果我将这个二进制文件移动到linux系统并加载二进制文件 编译器说不支持的版本 我对这个问题一无所知 有人能帮我们吗 Windows和linux的Boost版本是相同的。boost版本为1_63_0 Adjcency_grpah LoadGraphData(char *fileName) { Adjcency_grpah g; std::ifstream ifs(fileN
Adjcency_grpah LoadGraphData(char *fileName) {
Adjcency_grpah g;
std::ifstream ifs(fileName, std::ios::binary);
if (!ifs) {
cout << "Read Error" << endl;
exit(1);
}
try {
boost::archive::binary_iarchive ia(ifs);
ia & BOOST_SERIALIZATION_NVP(g);
cout << "Restoring Graphs Serialize Success\n" << endl;
}
catch (boost::archive::archive_exception e) {
cout << "BOOST ERROR " << e.what() << std::endl;
}
return g;
}
appcentcy\u grpah LoadGraphData(char*fileName){
邻接;
std::ifstream ifs(文件名,std::ios::binary);
如果(!ifs){
coutBoost的内置二进制文件是不可移植的。它在文档中这样说
相反,您应该能够使用。它与Boost序列化完全兼容
除此之外,请确保使用独立于平台的类型标识符(因此,int64\t
而不是long
等).如果您可以发布一个实际的SSCCE,那么我们可以检查它是否有任何错误。有许多组件可以生成二进制文件。因此,我想发布它,但很难生成示例代码…通过SaveGraphData代码,它在windows中生成二进制文件。我使用sftp将其移动到Linux服务器。在Linux系统中,我运行前面提到的代码。CompiLER说不受支持的版本。我们没有印象深刻:从二进制100个节点图演示二进制存档的创建,并读取它。使用两个不同的创建的图形检查往返。欢迎。EOS便携式存档是C++的库吗?您可以实际查看链接。如果不喜欢访问Web PA,请使用安全浏览器。GES。如果不是C++,它不能完全与Boost序列化兼容,对吗?哦,我理解它,我正在调整EOS存档!我从网站下载zip文件,但是在zip文件夹中没有“Purable BialayiIsCuivi.HPP”文件。