0
我面对下面从boost /移动/ unique_ptr.hpp编译错误:升压编译失败升压/移动/ unique_ptr.hpp
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
我试图检查boost bugs列出的任何错误,但没有找到很多。使用
加速版本:1.60.0
请让我知道,如果有这种创造和更高版本的提振纠正错误(试图检查,但没有发现任何)。提前致谢。
嗨乔纳森Wakely, 感谢您的答复。代码是遗留的,并且正在使用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?这不会是一个干净的解决方案请建议。 – user3753310