sh make.sh出错 显示cffi.error.VerificationError: CompileError: command 'gcc' failed with exit status 1

本文解决了一个常见的C++编译问题,当编译器提示'for'循环声明只在C99模式下允许时,通过在make.sh文件顶部添加CXXFLAGS和CFLAGS环境变量设置为C++11和C99来解决。同时,检查并确认cuda_arch是否与显卡型号匹配。

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

编译的时候显示错误:/lib/include/TH/THMath.h:260:3: error: ‘for’ loop initial declarations are only allowed in C99 mode
   for (int i = 0; i < 6; ++i) {
   ^

在编译文件make.sh最上面加以下两行:
export CXXFLAGS="-std=c++11"
export CFLAGS="-std=c99"
顺便查查自己的cuda_arch是不是自己显卡对应的,如1080ti 对应 CUDA_ARCH="-gencode arch=compute_61,code=sm_61 "

==> Processing catkin package: 'daheng' ==> Building with env: '/home/bt/A06_ws/devel_isolated/coordSystem/env.sh' Makefile exists, skipping explicit cmake invocation... ==> make cmake_check_build_system in '/home/bt/A06_ws/build_isolated/daheng' ==> make -j20 -l20 in '/home/bt/A06_ws/build_isolated/daheng' [ 0%] Built target std_msgs_generate_messages_cpp [ 0%] Built target sensor_msgs_generate_messages_cpp [ 0%] Built target sensor_msgs_generate_messages_eus [ 0%] Built target sensor_msgs_generate_messages_nodejs [ 0%] Built target geometry_msgs_generate_messages_eus [ 0%] Built target rosgraph_msgs_generate_messages_py [ 0%] Built target geometry_msgs_generate_messages_lisp [ 0%] Built target geometry_msgs_generate_messages_nodejs [ 0%] Built target geometry_msgs_generate_messages_cpp [ 0%] Built target sensor_msgs_generate_messages_lisp [ 0%] Built target sensor_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_eus [ 0%] Built target geometry_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_py [ 0%] Built target std_msgs_generate_messages_nodejs [ 0%] Built target roscpp_generate_messages_cpp [ 0%] Built target roscpp_generate_messages_eus [ 0%] Built target std_msgs_generate_messages_lisp [ 0%] Built target roscpp_generate_messages_lisp [ 0%] Built target roscpp_generate_messages_py [ 0%] Built target roscpp_generate_messages_nodejs [ 0%] Built target rosgraph_msgs_generate_messages_eus [ 50%] Built target daheng [ 50%] Built target rosgraph_msgs_generate_messages_cpp [ 50%] Built target rosgraph_msgs_generate_messages_nodejs [ 50%] Built target rosgraph_msgs_generate_messages_lisp [ 75%] Linking CXX executable /home/bt/A06_ws/devel_isolated/daheng/lib/daheng/daheng_driver /usr/bin/ld: warning: libGCBase_gcc40_v2_3.so, needed by /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so, not found (try using -rpath or -rpath-link) /usr/bin/ld: warning: libGenApi_gcc40_v2_3.so, needed by /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so, not found (try using -rpath or -rpath-link) CMakeFiles/daheng_driver.dir/src/daheng_driver.cpp.o:在函数‘main’中: daheng_driver.cpp:(.text+0x669):对‘GXGetLibVersion’未定义的引用 daheng_driver.cpp:(.text+0x144e):对‘GXSetAcqusitionBufferNumber’未定义的引用 daheng_driver.cpp:(.text+0x1b08):对‘GXStreamOn’未定义的引用 daheng_driver.cpp:(.text+0x1c33):对‘GXDQBuf’未定义的引用 daheng_driver.cpp:(.text+0x20f8):对‘DxRaw8toRGB24’未定义的引用 daheng_driver.cpp:(.text+0x23d7):对‘GXQBuf’未定义的引用 daheng_driver.cpp:(.text+0x2440):对‘GXStreamOff’未定义的引用 CMakeFiles/daheng_driver.dir/src/daheng_driver.cpp.o:在函数‘PixelFormatConvert(GX_FRAME_BUFFER*)’中: daheng_driver.cpp:(.text+0x2bab):对‘DxRaw8toRGB24’未定义的引用 daheng_driver.cpp:(.text+0x2c0b):对‘DxRaw16toRaw8’未定义的引用 daheng_driver.cpp:(.text+0x2c74):对‘DxRaw8toRGB24’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CEventAdapterGeneric::CEventAdapterGeneric(GenApi::INodeMap*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::_npos()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::gcstring(char const*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CChunkAdapter::AttachNodeMap(GenApi::INodeMap*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::node_vector::node_vector()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CEventAdapter::DetachNodeMap()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::end() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::const_iterator::operator!=(GenICam::gcstring_vector::const_iterator const&) const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::GenericException::~GenericException()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::RuntimeException::RuntimeException(char const*, char const*, int, char const*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::~gcstring_vector()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘vtable for GenICam::GenericException’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::c_str() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::_InternalLoadDLL(GenICam::gcstring, GenICam::gcstring, GenICam::gcstring)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CEventAdapterGeneric::DeliverMessage(unsigned char const*, unsigned int, unsigned long)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::begin() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::Deregister(long)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::operator char const*() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CEventAdapterGeneric::~CEventAdapterGeneric()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CChunkAdapterGeneric::CChunkAdapterGeneric(GenApi::INodeMap*, long)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CChunkAdapter::UpdateBuffer(unsigned char*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CFeatureBag::LoadFromBag(GenApi::INodeMap*, bool, GenICam::gcstring_vector*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::AccessException::AccessException(char const*, char const*, int, char const*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::getline(std::istream&, GenICam::gcstring&)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘typeinfo for GenICam::GenericException’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::node_vector::~node_vector()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::clear()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::find(GenICam::gcstring const&, unsigned long) const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::~gcstring()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CChunkAdapter::DetachNodeMap()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::GenericException::GetSourceLine() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::at(unsigned long)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::const_iterator::operator*() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::GenericException::GetSourceFileName() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::node_vector::at(unsigned long)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::gcstring_vector()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::operator==(GenICam::gcstring const&) const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::GenericException::what() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::GenericException::GetDescription() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CFeatureBag::StoreToBag(GenApi::INodeMap*, int)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::gcstring()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::GenericException::~GenericException()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CastToIDestroy(GenApi::INodeMap*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::node_vector::size() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CChunkAdapter::DetachBuffer()’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::push_back(GenICam::gcstring const&)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::operator=(GenICam::gcstring const&)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘vtable for GenApi::CFeatureBag’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::const_iterator::operator++(int)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring_vector::size() const’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenApi::CastToINodeMapDyn(GenApi::INodeMap*)’未定义的引用 /usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/libgxiapi.so:对‘GenICam::gcstring::gcstring(GenICam::gcstring const&)’未定义的引用 collect2: error: ld returned 1 exit status CMakeFiles/daheng_driver.dir/build.make:131: recipe for target '/home/bt/A06_ws/devel_isolated/daheng/lib/daheng/daheng_driver' failed make[2]: *** [/home/bt/A06_ws/devel_isolated/daheng/lib/daheng/daheng_driver] Error 1 CMakeFiles/Makefile2:1167: recipe for target 'CMakeFiles/daheng_driver.dir/all' failed make[1]: *** [CMakeFiles/daheng_driver.dir/all] Error 2 Makefile:145: recipe for target 'all' failed make: *** [all] Error 2 <== Failed to process package 'daheng': Command '['/home/bt/A06_ws/devel_isolated/coordSystem/env.sh', 'make', '-j20', '-l20']' returned non-zero exit status 2 Reproduce this error by running: ==> cd /home/bt/A06_ws/build_isolated/daheng && /home/bt/A06_ws/devel_isolated/coordSystem/env.sh make -j20 -l20 Command failed, exiting.
最新发布
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值