【发布时间】:2017-05-13 09:19:08
【问题描述】:
我正在做序列化序列。
在windows系统中,我通过boost::serialization制作二进制文件
好像没有问题。
但是,如果我将此二进制文件移动到 linux 系统并加载二进制文件 编译器说不支持的版本。
我不知道这个问题。
谁能帮助我们?
Windows 和 linux Boost 版本相同。 boost 版本是 1_63_0。
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;
}
它仍然说 "BOOST ERROR 不支持的版本 时间:0"
【问题讨论】:
-
如果您可以发布一个实际的 SSCCE,那么我们可以对其进行审核,看是否有任何错误。
-
生成二进制文件的组件很多。所以,我想发布它,但是很难制作示例代码......
-
通过SaveGraphData代码在windows中生成二进制文件。然后我用 sftp 把它移到 Linux 服务器上。在 Linux 系统中,我运行我之前提到的代码。编译器说不支持的版本。
-
我们没有留下深刻印象:coliru.stacked-crooked.com/a/798201d67ba5805a 演示从随机 100 节点图创建二进制存档并将其读回。使用两个不同创建的图检查往返。不客气。
标签: c++ linux serialization boost binaryfiles