c++0x_warning.h:31:2: error

本文解决了一个在使用g++编译libmemcached程序时遇到的编译错误问题,通过在编译选项中加入-std=c++0x解决了错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

g++编译使用libmemcached编写的程序时报错,做个简单的记录。

In file included from /usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/cinttypes:35,

                 from /usr/include/libmemcached-1.0/memcached.h:46,
                 from /usr/include/libmemcached/memcached.h:39,
                 from main.cpp:4:

/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/c++0x_warning.h:31:2: error: #error This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.


解决方法:

         makefile之前的写法是: CXX = g++    

CXXFLAG = -g -Wall

在flag里加上-std=c++0x就可以编译通过啦,即:

CXX = g++
CXXFLAG = -g -Wall -std=c++0x

--- stderr: pilz_industrial_motion_planner /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o: warning: relocation against `_ZTIN30pilz_industrial_motion_planner21PlanningContextLoaderE' in read-only section `.text._ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE[_ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE]' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o: in function `CommandPlannerTestDirect_FailOnLoadContext_Test::TestBody()::TestPlanningContextLoader::~TestPlanningContextLoader()': unittest_pilz_industrial_motion_planner_direct.cpp:(.text+0x93): undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o: in function `CommandPlannerTestDirect_FailOnLoadContext_Test::TestBody()': unittest_pilz_industrial_motion_planner_direct.cpp:(.text+0x3149): undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o: in function `CommandPlannerTestDirect_FailOnLoadContext_Test::TestBody()::TestPlanningContextLoader::~TestPlanningContextLoader()': unittest_pilz_industrial_motion_planner_direct.cpp:(.text+0x4f): undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o: in function `std::_Sp_counted_ptr_inplace<CommandPlannerTestDirect_FailOnLoadContext_Test::TestBody()::TestPlanningContextLoader, std::allocator<CommandPlannerTestDirect_FailOnLoadContext_Test::TestBody()::TestPlanningContextLoader>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()': unittest_pilz_industrial_motion_planner_direct.cpp:(.text+0x73): undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o: in function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > class_loader::impl::getAvailableClasses<pilz_industrial_motion_planner::PlanningContextLoader>(class_loader::ClassLoader const*)': unittest_pilz_industrial_motion_planner_direct.cpp:(.text._ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE[_ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE]+0x43): undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o:(.data.rel.ro+0x10): undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o:(.data.rel.ro+0x58): undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/src/unittest_pilz_industrial_motion_planner_direct.cpp.o:(.data.rel.ro+0x60): undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: warning: creating DT_TEXTREL in a PIE collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/build.make:363:test/unit_tests/unittest_pilz_industrial_motion_planner_direct] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:553:test/unit_tests/CMakeFiles/unittest_pilz_industrial_motion_planner_direct.dir/all] 错误 2 gmake[1]: *** 正在等待未完成的任务.... /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner.dir/src/unittest_pilz_industrial_motion_planner.cpp.o: warning: relocation against `_ZTIN30pilz_industrial_motion_planner21PlanningContextLoaderE' in read-only section `.text._ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE[_ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE]' /usr/bin/ld: CMakeFiles/unittest_pilz_industrial_motion_planner.dir/src/unittest_pilz_industrial_motion_planner.cpp.o: in function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > class_loader::impl::getAvailableClasses<pilz_industrial_motion_planner::PlanningContextLoader>(class_loader::ClassLoader const*)': unittest_pilz_industrial_motion_planner.cpp:(.text._ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE[_ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE]+0x45): undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: warning: creating DT_TEXTREL in a PIE collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_pilz_industrial_motion_planner.dir/build.make:361:test/unit_tests/unittest_pilz_industrial_motion_planner] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:835:test/unit_tests/CMakeFiles/unittest_pilz_industrial_motion_planner.dir/all] 错误 2 /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_trajectory_generator_lin.dir/build.make:364:test/unit_tests/unittest_trajectory_generator_lin] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:773:test/unit_tests/CMakeFiles/unittest_trajectory_generator_lin.dir/all] 错误 2 /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_trajectory_blender_transition_window.dir/build.make:380:test/unit_tests/unittest_trajectory_blender_transition_window] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:675:test/unit_tests/CMakeFiles/unittest_trajectory_blender_transition_window.dir/all] 错误 2 /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_ptp.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_trajectory_generator_ptp.dir/build.make:363:test/unit_tests/unittest_trajectory_generator_ptp] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:805:test/unit_tests/CMakeFiles/unittest_trajectory_generator_ptp.dir/all] 错误 2 /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_planning_context.dir/build.make:366:test/unit_tests/unittest_planning_context] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:1042:test/unit_tests/CMakeFiles/unittest_planning_context.dir/all] 错误 2 /usr/bin/ld: ../../libplanning_context_loader_circ.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: ../../libplanning_context_loader_circ.so: undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: ../../libplanning_context_loader_circ.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: ../../libplanning_context_loader_circ.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_circ.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_circ.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_trajectory_generator_circ.dir/build.make:364:test/unit_tests/unittest_trajectory_generator_circ] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:741:test/unit_tests/CMakeFiles/unittest_trajectory_generator_circ.dir/all] 错误 2 /usr/bin/ld: CMakeFiles/unittest_planning_context_loaders.dir/src/unittest_planning_context_loaders.cpp.o: warning: relocation against `_ZTIN30pilz_industrial_motion_planner21PlanningContextLoaderE' in read-only section `.text._ZN12class_loader4impl14createInstanceIN30pilz_industrial_motion_planner21PlanningContextLoaderEEEPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_11ClassLoaderE[_ZN12class_loader4impl14createInstanceIN30pilz_industrial_motion_planner21PlanningContextLoaderEEEPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_11ClassLoaderE]' /usr/bin/ld: CMakeFiles/unittest_planning_context_loaders.dir/src/unittest_planning_context_loaders.cpp.o: in function `std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > class_loader::impl::getAvailableClasses<pilz_industrial_motion_planner::PlanningContextLoader>(class_loader::ClassLoader const*)': unittest_planning_context_loaders.cpp:(.text._ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE[_ZN12class_loader4impl19getAvailableClassesIN30pilz_industrial_motion_planner21PlanningContextLoaderEEESt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaISA_EEPKNS_11ClassLoaderE]+0x45): undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: CMakeFiles/unittest_planning_context_loaders.dir/src/unittest_planning_context_loaders.cpp.o: in function `pilz_industrial_motion_planner::PlanningContextLoader* class_loader::impl::createInstance<pilz_industrial_motion_planner::PlanningContextLoader>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, class_loader::ClassLoader*)': unittest_planning_context_loaders.cpp:(.text._ZN12class_loader4impl14createInstanceIN30pilz_industrial_motion_planner21PlanningContextLoaderEEEPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_11ClassLoaderE[_ZN12class_loader4impl14createInstanceIN30pilz_industrial_motion_planner21PlanningContextLoaderEEEPT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS_11ClassLoaderE]+0x44): undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: warning: creating DT_TEXTREL in a PIE collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_planning_context_loaders.dir/build.make:363:test/unit_tests/unittest_planning_context_loaders] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:1007:test/unit_tests/CMakeFiles/unittest_planning_context_loaders.dir/all] 错误 2 /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::getAlgorithm[abi:cxx11]() const' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `typeinfo for pilz_industrial_motion_planner::PlanningContextLoader' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setModel(std::shared_ptr<moveit::core::RobotModel const> const&)' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::~PlanningContextLoader()' /usr/bin/ld: ../../libplanning_context_loader_lin.so: undefined reference to `pilz_industrial_motion_planner::PlanningContextLoader::setLimits(pilz_industrial_motion_planner::LimitsContainer const&)' collect2: error: ld returned 1 exit status gmake[2]: *** [test/unit_tests/CMakeFiles/unittest_trajectory_generator_common.dir/build.make:365:test/unit_tests/unittest_trajectory_generator_common] 错误 1 gmake[1]: *** [CMakeFiles/Makefile2:709:test/unit_tests/CMakeFiles/unittest_trajectory_generator_common.dir/all] 错误 2 gmake: *** [Makefile:146:all] 错误 2 --- Failed <<< pilz_industrial_motion_planner [38.0s, exited with code 2]
最新发布
07-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值