Compilation error on NVIDIA TX2.
Hey there, I have installed the camera's driver of arm64. When I compiling it, there is a error like this:
Linking CXX executable /home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_list_cameras
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::ComponentAccess::compGetStringParam[abi:cxx11](mvIMPACT::acquire::TOBJ_StringQuery, int, int) const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire15ComponentAccess18compGetStringParamB5cxx11ENS0_16TOBJ_StringQueryEii[_ZNK8mvIMPACT7acquire15ComponentAccess18compGetStringParamB5cxx11ENS0_16TOBJ_StringQueryEii]+0x64): undefined reference to OBJ_GetSWithInplaceConstruction'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::ComponentAccess::ComponentAccess(int)': list_cameras.cpp:(.text._ZN8mvIMPACT7acquire15ComponentAccessC2Ei[_ZN8mvIMPACT7acquire15ComponentAccessC5Ei]+0x4c): undefined reference to OBJ_CheckHandle'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::ComponentAccess::changedCounter() const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire15ComponentAccess14changedCounterEv[_ZNK8mvIMPACT7acquire15ComponentAccess14changedCounterEv]+0x30): undefined reference to OBJ_GetChangedCounter'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::Component::isValid() const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire9Component7isValidEv[_ZNK8mvIMPACT7acquire9Component7isValidEv]+0x18): undefined reference to OBJ_CheckHandle'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::Component::type() const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire9Component4typeEv[_ZNK8mvIMPACT7acquire9Component4typeEv]+0x30): undefined reference to OBJ_GetType'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::ComponentLocatorBase::bindSearchBase(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': list_cameras.cpp:(.text._ZN8mvIMPACT7acquire20ComponentLocatorBase14bindSearchBaseEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN8mvIMPACT7acquire20ComponentLocatorBase14bindSearchBaseEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x80): undefined reference to OBJ_GetHandleEx'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::ComponentLocatorBase::findComponent(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int) const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire20ComponentLocatorBase13findComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii[_ZNK8mvIMPACT7acquire20ComponentLocatorBase13findComponentERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEii]+0x60): undefined reference to OBJ_GetHandleEx'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::Property::readS(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire8Property5readSEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZNK8mvIMPACT7acquire8Property5readSEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x9c): undefined reference to OBJ_GetSFormattedEx'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::Device::open()': list_cameras.cpp:(.text._ZN8mvIMPACT7acquire6Device4openEv[_ZN8mvIMPACT7acquire6Device4openEv]+0x44): undefined reference to DMR_OpenDevice'
CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::DeviceManager::updateInfoVector() const': list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire13DeviceManager16updateInfoVectorEv[_ZNK8mvIMPACT7acquire13DeviceManager16updateInfoVectorEv]+0x80): undefined reference to DMR_GetDeviceCount'
list_cameras.cpp:(.text._ZNK8mvIMPACT7acquire13DeviceManager16updateInfoVectorEv[_ZNK8mvIMPACT7acquire13DeviceManager16updateInfoVectorEv]+0xe8): undefined reference to DMR_GetDevice' CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::DeviceManager::DeviceManager()':
list_cameras.cpp:(.text._ZN8mvIMPACT7acquire13DeviceManagerC2Ev[_ZN8mvIMPACT7acquire13DeviceManagerC5Ev]+0x60): undefined reference to DMR_Init' CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::DeviceManager::~DeviceManager()':
list_cameras.cpp:(.text._ZN8mvIMPACT7acquire13DeviceManagerD2Ev[_ZN8mvIMPACT7acquire13DeviceManagerD5Ev]+0x20): undefined reference to DMR_Close' CMakeFiles/bluefox2_list_cameras.dir/list_cameras.cpp.o: In function mvIMPACT::acquire::EnumPropertyIOBJ_GetI' collect2: error: ld returned 1 exit status bluefox2/src/CMakeFiles/bluefox2_list_cameras.dir/build.make:132: recipe for target '/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_list_cameras' failed make[2]: *** [/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_list_cameras] Error 1 CMakeFiles/Makefile2:2785: recipe for target 'bluefox2/src/CMakeFiles/bluefox2_list_cameras.dir/all' failed make[1]: *** [bluefox2/src/CMakeFiles/bluefox2_list_cameras.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestReset'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetType' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetI'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_AllocImageRequestBufferDesc' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDevice'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_Close' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetF'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFlags' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_OpenDevice'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetElementCount' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ReleaseImageBuffer'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ReleaseImageRequestBufferDesc' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_SetF'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDriverHandle' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFirstChild'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFDictEntries' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDeviceCount'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetDictSize' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetChangedCounter'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ErrorCodeToString' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetP'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_CloseDevice' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetIDictEntries'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestUnlock' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_SetI'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_FindList' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_Init'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestWaitFor' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetHandleEx'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_IsConstantDefined' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetNextSibling'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetSFormattedEx' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetSWithInplaceConstruction'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestSingle' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_CheckHandle'
collect2: error: ld returned 1 exit status
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestReset' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetType'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetI' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_AllocImageRequestBufferDesc'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDevice' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_Close'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetF' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFlags'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_OpenDevice' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined bluefox2/src/CMakeFiles/bluefox2_stereo_node.dir/build.make:131: recipe for target '/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_stereo_node' failed reference to OBJ_GetElementCount'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ReleaseImageBuffer' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ReleaseImageRequestBufferDesc'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_SetF' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDriverHandle'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFirstChild' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFDictEntries'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDeviceCount' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetDictSize'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference tomake[2]: *** [/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_stereo_node] Error 1
OBJ_GetChangedCounter' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ErrorCodeToString'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetP' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_CloseDevice'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetIDictEntries' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestUnlock'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_SetI' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_FindList'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_Init' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestWaitFor'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetHandleEx' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_IsConstantDefined'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetNextSibling' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetSFormattedEx'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetSWithInplaceConstruction' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestSingle'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_CheckHandle' collect2: error: ld returned 1 exit status CMakeFiles/Makefile2:2585: recipe for target 'bluefox2/src/CMakeFiles/bluefox2_stereo_node.dir/all' failed make[1]: *** [bluefox2/src/CMakeFiles/bluefox2_stereo_node.dir/all] Error 2 bluefox2/src/CMakeFiles/bluefox2_multi_node.dir/build.make:131: recipe for target '/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_multi_node' failed make[2]: *** [/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_multi_node] Error 1 CMakeFiles/Makefile2:2622: recipe for target 'bluefox2/src/CMakeFiles/bluefox2_multi_node.dir/all' failed make[1]: *** [bluefox2/src/CMakeFiles/bluefox2_multi_node.dir/all] Error 2 /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestReset'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetType' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetI'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_AllocImageRequestBufferDesc' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDevice'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_Close' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetF'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFlags' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_OpenDevice'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetElementCount' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ReleaseImageBuffer'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ReleaseImageRequestBufferDesc' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_SetF'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDriverHandle' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFirstChild'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetFDictEntries' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_GetDeviceCount'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetDictSize' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetChangedCounter'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ErrorCodeToString' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetP'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_CloseDevice' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetIDictEntries'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestUnlock' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_SetI'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_FindList' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_Init'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestWaitFor' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetHandleEx'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_IsConstantDefined' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetNextSibling'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetSFormattedEx' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_GetSWithInplaceConstruction'
/home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to DMR_ImageRequestSingle' /home/nvidia/monocular/catkin_ws/devel/lib/libbluefox2.so: undefined reference to OBJ_CheckHandle'
collect2: error: ld returned 1 exit status
bluefox2/src/CMakeFiles/bluefox2_single_node.dir/build.make:131: recipe for target '/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_single_node' failed
make[2]: *** [/home/nvidia/monocular/catkin_ws/devel/lib/bluefox2/bluefox2_single_node] Error 1
CMakeFiles/Makefile2:2748: recipe for target 'bluefox2/src/CMakeFiles/bluefox2_single_node.dir/all' failed
make[1]: *** [bluefox2/src/CMakeFiles/bluefox2_single_node.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
Has anyone succeeded on tx2?
What OS are you running on the Jetson? If it's Ubuntu 18.04 or 16.04, then it is probably impossible to get it working, since matrixvision haven't yet released an arm64 version of the SDK build with C++11 ABI. But the rest of the system uses C++11 ABI, and that's an unresolvable mismatch.
I asked matrixvision to release the missing SDK, so let's see.
@peci1 Thank you very much. I did use Ubuntu 16.04 on the Jetson TX2, and it can't work as you said. Later I use Raspberry Pi that runs Ubuntu meta 16.04, and it can work well. I think one possible reason is TX2 is aarch64 while Raspberry Pi is armv7l, which can be got by using uname -m. Finally, I use Intel NUC that is x86. It can also work well and has more computing power than the Raspberry Pi.
The ABI compile errors on Jetson TX2 are gone with driver version 2.35.0. But then other problems arise, since this driver isn't updated to work with this newer SDK version.
I am seeing the exact same problem on my Coral.ai Board trying to compile ContinuousCaptureFFmpeg.cpp doing
g++ -I/opt/mvIMPACT_Acquire ContinuousCaptureFFmpeg.cpp -o ffmpeg
I get ContinuousCaptureFFmpeg_12.4.2021.txt
You can try our fork https://github.com/ctu-mrs/bluefox2/. I'm not sure if it's supposed to run on Jetson or not, but it is maintained at least for x86.