2017-05-13 7 views
0

나는 일련의 순열을하고있다.부스트 바이너리 파일 읽기 오류 지원되지 않는 버전

윈도우 시스템에서, 나는 그것을 아무 문제가없는 것 같다

향상을 통해 바이너리 파일 : 직렬화했다. 내가 리눅스 시스템이 바이너리 파일을 이동 및 바이너리 파일 컴파일러를로드하는 경우

그러나이 지원되지 않는 버전을 말한다.

나는이 문제에 대한 아무 생각이 없습니다.

아무도 우리를 도와 드릴까요?

Windows 및 Linux 부스트 버전은 동일합니다. 부스트 버전은 1_63_0입니다.

+1

실제 SSCCE를 게시 할 수 있다면 오류가 있는지 검토 할 수 있습니다. – sehe

+0

바이너리 파일을 생성하는 데 많은 구성 요소가 있습니다. 그래서, 그것을 게시하고 싶지만 샘플 코드를 만들기가 어렵습니다 ... – Seungsoo

+0

SaveGraphData 코드를 통해 Windows에서 이진 파일을 생성합니다. 나는 sftp로 리눅스 서버로 옮긴다. 리눅스 시스템에서는 앞서 언급 한 코드를 실행합니다. 컴파일러는 지원되지 않는 버전을 말합니다. – Seungsoo

답변

1

부스트의 내장 바이너리 아카이브가 이식 할 수 없습니다 입니다 :

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; 
} 

는 아직 "0 BOOST 오류 지원되지 않는 버전 시간"을 말한다. 그것은 문서에서 그렇게 말합니다.

대신 EOS Portable Archive을 사용할 수 있습니다. Boost Serialization과 완벽하게 호환됩니다.

이외에도 플랫폼 독립적 유형 식별자 (long 대신 int64_t 등)를 사용해야합니다.

+0

EOS Portable Archive는 C++ 용 라이브러리입니까? – Seungsoo

+1

링크에서 실제로보실 수 있습니다. 웹 페이지를 방문하지 않으려면 보안 브라우저를 사용하십시오. C++이 아니라면 "부스트 직렬화와 완전히 호환 가능"할 수는 없습니다, 맞습니까? – sehe

+0

오! 그래, 나는 그것을 이해하고 나는 EOS 아카이브를 조정하고있어! 웹 사이트에서 zip 파일을 다운로드하지만 zip 폴더에 "portable_binary_iarchive.hpp"파일이 없습니다. 이름이 "portable_iarchive.hpp"로 변경 되었습니까? – Seungsoo