当我使用 boost::archive::binary_iarchive 时,出现错误:无效签名 当我想编译程序时--cvpr_2012_ffd。你可以从 http://blog.gimiatlicho.webfactional.com/?page_id=38 获取它。我根据它的自述文件编译该程序。当我运行这个程序时遇到一些错误。错误是这样的
l00138375@l00138375:/home/hm/downloads/cvpr_2012_public$ ./FaceForest 1 data/config_ffd.txt data/config_headpose.txt data/haarcascade_frontalface_alt.xml
Image pathdata/index_random_subset.txt
paths to treesdata/trees_ffd/
Image path
paths to treesdata/trees_headpose/tree_
10 to load.
Archive Exception during deserializing:
invalid signature
it was tree: data/trees_headpose/tree_000.txt
segment fault
我发现这个错误出现在文件:tree.hpp中,代码如下
224 //check if file exist
225 std::ifstream ifs(path.c_str());
226 if (!ifs) {
227 std::cout << "Tree not found " << path << std::endl;
228 return false;
229 }
230
231 //load tree
232 try {
233 // boost::archive::binary_iarchive ia(ifs);
234 boost::archive::binary_iarchive ia(ifs);
235 ia >> *t;
236 } catch (boost::archive::archive_exception& ex) {
237 std::cout << "Archive Exception during deserializing:" << std::endl;
238 std::cout << ex.what() << std::endl;
239 std::cout << "it was tree: " << path << std::endl;
240 } catch (int e) {
241 std::cout << path << "EXCEPTION " << e << std::endl;
242
243 }
错误发生在行:234
有人遇到这个错误吗?如何解决这个问题?谢谢
最佳答案
我是您尝试编译的程序的作者。 问题是您尝试加载的文件是 64 位 linux/mac 二进制文件。
如果您使用的是 32 位 Linux 或 32/64 Windows,则无法加载文件。
如果您需要 32 位二进制模型,请联系我。
关于c++ - boost::archive::binary_iarchive 签名无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13151007/