0
내가 부스트/이동/unique_ptr.hpp에서 컴파일 오류가 아래에 직면하고있어 부스트/이동/unique_ptr.hpp에 실패 : 나는 boost bugs에 열거 된 버그를 확인하려했지만하지 않았다부스트 컴파일
In file included from ../../src/pamEmergencyBanner/pamEmergencyBanner.cpp:29:0:
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp: In constructor 'boost::move_upd::unique_ptr_data<P, D, false>::unique_ptr_data()':
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:133:9: error: expected identifier before 'do'
: D(), m_p()
^
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:133:9: error: expected '{' before 'do'
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp: In constructor 'boost::move_upd::unique_ptr_data<P, D, false>::unique_ptr_data(P)':
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:137:9: error: expected identifier before 'do'
: D(), m_p(p)
^
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:137:9: error: expected '{' before 'do'
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp: In constructor 'boost::move_upd::unique_ptr_data<P, D, false>::unique_ptr_data(P, boost::move_upd::unique_ptr_data<P, D, false>::deleter_arg_type1)':
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:141:9: error: expected identifier before 'do'
: D(d1), m_p(p)
^
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:141:9: error: expected '{' before 'do'
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp: In constructor 'boost::move_upd::unique_ptr_data<P, D, false>::unique_ptr_data(P, const U&)':
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:146:9: error: expected identifier before 'do'
: D(::boost::forward<U>(d)), m_p(p)
^
/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/boost/move/unique_ptr.hpp:146:9: error: expected '{' before 'do'
make[5]: *** [../../src/pamEmergencyBanner/pamEmergencyBanner.o] Error 1
make[5]: Leaving directory `/home/sunkrish/sunkrish_20160812104350_RUIM_AAA_CLog/SS_AAA/Pam/build/pamEmergencyBanner'
Errors building lib1 target
make[4]: *** [lib] Error 2
많이 찾는다. 사용
부스트 버전 : 1.60.0
이이 생성 이후 부스트 버전에서 수정 된 버그이었다 (확인했지만 아무것도 발견하지 않은) 있으면 알려 주시기 바랍니다. 미리 감사드립니다. 당신이 표시되지 않은 프로그램의 버그 (의,
#define D(A) do(A)
이 부스트의 버그가 아닌, 그래서 우리는 정말 도움이되지 수
안녕하세요 조나단 Wakely, 답장을 보내 감사와 같은 명령 줄 인수 될 수있는
#define
에 의한 아니에요합니다. 코드는 유산이며 Boost 버전 1.55로 작업 중입니다. 1.60.0으로 업그레이드 한 후이 컴파일 작업이 실패합니다. – user3753310그건 중요하지 않아, 여전히 Boost의 버그는 아니야. 코드에'#define D 1'을 추가하면 잘못된 매크로가 어디에 정의되어 있는지 알려줍니다. –
그래, 고마워, 매크로 D 선언있어. 그 다른 라이브러리 (PAM)에 있습니다. '/fpbuild/fpsdkroot_cougar/sysroots/x86_64/sysroot-FP-FPNSN5500-x86_64/sysroot/usr/include/security/_pam_macros.h:190:0 : 참고 :이 이전 definition' 정의의 위치입니다 : '#define \t D (x) do {} while (0)' 이 충돌을 해결하는 방법 코드에 #undef D를 써야합니까? Pls가 제안하는 깨끗한 해결책은 아닙니다. – user3753310