VOT环境配置-报错ERROR: Unable to compile MEX function:

在目标跟踪数据集VOT环境详细配置过程中,遇到以下问题:

img

ERROR: Unable to compile MEX function: "E:\saliency\vot-toolkit\native\trax\support\matlab\traxserver.cpp: In function 'int fd_is_valid(int)':
E:\saliency\vot-toolkit\native\trax\support\matlab\traxserver.cpp:29:22: error: 'F_GETFD' was not declared in this scope
     return fcntl(fd, F_GETFD) != -1 || errno != EBADF;
                      ^~~~~~~
E:\saliency\vot-toolkit\native\trax\support\matlab\traxserver.cpp:29:29: error: 'fcntl' was not declared in this scope
     return fcntl(fd, F_GETFD) != -1 || errno != EBADF;
                             ^
".
错误使用 initialize_native (line 87)
Unable to compile all native resources.

出错 workspace_create (line 143)
initialize_native();

配置步骤均遵循这篇https://blog.csdn.net/cakaf/article/details/115705666?ops_request_misc=&request_id=&biz_id=102&utm_term=%E7%BB%8F%E5%85%B8%E8%B7%9F%E8%B8%AAvot%E4%BB%A3%E7%A0%81&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-115705666.142^v86^control,239^v2^insert_chatgpt&spm=1018.2226.3001.4187

操作到这一步的时候,出现的错误
“运行之后需要在命令行选择数据集(输入5)、为你要跑的跟踪器起个名字(输入ncc)、编程语言(输入1),然后当看到下面右图的画面时说明当前一切正常:”

根据参考资料中的类似问题解决方式,此问题出现在编译MEX function时出错,具体原因是缺少某些函数。解决方法是重新建立正确的链接,即使用以下命令:

cd /usr/local/MATLAB/R2016b/sys/os/glnxa64  # Matlab对应路径
sudo mv libstdc++.so.6.0.25 bak-libstdc++.so.6.0.25
sudo mv libstdc++.so.6 bak-libstdc++.so.6
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25 ./
sudo ln -sf ./libstdc++.so.6.0.25 ./libstdc++.so.6

需要注意的是,根据实际的文件版本修改命令中的文件名。之后重新启动Matlab即可解决该问题。

你把源码发给我看一下