문제

프로젝트에 부스트를 포함시킬 때 마다이 경고 중 백만이됩니다. 내가 어떻게 경고를 제거 할 수 있는지 아는 사람이 있습니까?

../depends boost/config/abi_prefix.hpp(19) : 경고 c4103 : '부양 boost config abi_prefix.hpp': 헤더를 포함한 후 정렬이 변경되었을 수 있습니다.

경고를 비활성화하기 위해 #pragma를 할 수 있다는 것을 알고 있지만 이러한 경고의 이유를 알고 싶습니다.

도움이 되었습니까?

해결책

그 이유는 Boost가 데이터를 포장 해야하는 모든 파일에서 이러한 pragmas를 푸시/팝하지 않기 때문입니다. #includ를 푸시 (abi_prefix.hpp)를 수행 한 다음 나중에 팝을 수행하는 다른 (abo_suffix.hp)를 수행합니다.

이를 통해 모든 곳에서 동일한 #Pragma Pack 코드를 재사용 할 수 있습니다. 이는 컴파일러마다 다를 수 있으므로 편리합니다.

그래도 완벽하게 안전합니다. #pragma 푸시 다음과 같은 팝이 뒤 따릅니다. 다른 파일에서만 포함됩니다. 따라서 해당 오류를 비활성화해야 할 것입니다.

다른 팁

예, config/abi/msvc_prefix.hpp의 #pragma pack 지시문에서 얻을 수 있습니다. 프로젝트의 기본 포장은 8이 아님을 나타냅니다. 그것은 매우 드문 일입니다. 이것은 의도적입니까? 포장 차이로 인한 버그는 진단하기가 약간 까다로울 수 있습니다.

이 경고를 제거하는 방법을 찾았습니다.

파일 roost_1 _ ** boost config user.hpp를 편집하고 boost_disable_abi_headers와의 라인을 쓸어 내야합니다.

따라서이 파일에서 정의해야합니다.

#define BOOST_DISABLE_ABI_HEADERS

일단 완료되면 평소처럼 bjam으로 구축하십시오.

이 솔루션의 위험은 아래의 의견을 참조하십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top