此文章旨在帮助解决 C++ 版 Open3D 编译时找不到 AzureKinect 相关函数的问题。
问题描述在尝试构建官方Azure Kinect示例时(AzureKinectViewer.cpp、AzureKinectMKVReader.cpp和AzureKinectRecord.cpp)报错:
[1/1] Linking CXX executable AzureKinectViewer FAILED: AzureKinectViewer : && /usr/bin/c++ CMakeFiles/AzureKinectViewer.dir/AzureKinectViewer.cpp.o -o AzureKinectViewer -L/usr/local/lib -L/usr/local/cuda/lib64 -Wl,-rpath,/usr/local/lib:/usr/local/cuda/lib64 /usr/lib/aarch64-linux-gnu/libk4a.so.1.4.1 /usr/local/lib/libOpen3D.so && : CMakeFiles/AzureKinectViewer.dir/AzureKinectViewer.cpp.o: In function `main': AzureKinectViewer.cpp:(.text+0x4fc): undefined reference to `open3d::io::AzureKinectSensor::ListDevices()' AzureKinectViewer.cpp:(.text+0x50c): undefined reference to `open3d::io::AzureKinectSensorConfig::AzureKinectSensorConfig()' AzureKinectViewer.cpp:(.text+0x75c): undefined reference to `open3d::io::AzureKinectSensor::AzureKinectSensor(open3d::io::AzureKinectSensorConfig const&)' AzureKinectViewer.cpp:(.text+0x76c): undefined reference to `open3d::io::AzureKinectSensor::Connect(unsigned long)' AzureKinectViewer.cpp:(.text+0x84c): undefined reference to `open3d::io::AzureKinectSensor::CaptureFrame(bool) const' AzureKinectViewer.cpp:(.text+0x93c): undefined reference to `open3d::io::AzureKinectSensor::~AzureKinectSensor()' AzureKinectViewer.cpp:(.text+0xb2c): undefined reference to `open3d::io::AzureKinectSensor::~AzureKinectSensor()' CMakeFiles/AzureKinectViewer.dir/AzureKinectViewer.cpp.o: In function `open3d::io::AzureKinectSensorConfig::~AzureKinectSensorConfig()': AzureKinectViewer.cpp:(.text._ZN6open3d2io23AzureKinectSensorConfigD2Ev[_ZN6open3d2io23AzureKinectSensorConfigD5Ev]+0xc): undefined reference to `vtable for open3d::io::AzureKinectSensorConfig' AzureKinectViewer.cpp:(.text._ZN6open3d2io23AzureKinectSensorConfigD2Ev[_ZN6open3d2io23AzureKinectSensorConfigD5Ev]+0x10): undefined reference to `vtable for open3d::io::AzureKinectSensorConfig' collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. 这是因为安装Open3D时未开启Azure Kinect的支持选项。
...