2012-10-31 66 views
1

当我使用boost :: archive :: binary_iarchive时,发生错误:无效签名 当我想编译程序时--cvpr_2012_ffd.you可以从http://blog.gimiatlicho.webfactional.com/?page_id=38得到它。我根据它的README编译程序。当我运行这个程序,我遇到一些和error.The错误是这样boost :: archive :: binary_iarchive无效签名

[email protected]:/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

不要有人遇到这个错误怎么解决这个问题的感谢

+0

我在一台linux机器上编译这个程序,该机器的操作系统是64位。它可以工作。我认为tree_000.txt可能是64位二进制文​​件。我想问如何将这个文件转换为32位。 – user1111208

回答

3

我是你试图编译程序的作者。 问题是您尝试加载的文件是64位Linux/Mac二进制文件。

如果您使用32位Linux或32/64窗口,则无法加载文件。

如果您需要32位二进制模型,请联系我。