你好,我使用的是光流Matlab/C++代码(源代码).。我在LinuxUbuntu14.04 64位操作系统下使用MATLAB .在配置文件中写着:
编译前,请检查子文件夹"mex“中的project.h文件。如果你使用Windows,你就不用做任何事情。如果您使用Mac或Linux,请取消注释#Define_LINUX_MAC行。
,这已经完成了。另外,它还包括:
在Matlab中,在适当配置mex之后,将目录更改为"mex“并运行以下命令:
mex Coarse2FineTwoFrames.cpp OpticalFlow.cpp GaussianPyramid.cpp我认为,由于未能在MATLAB中正确配置mex编译器,在运行上述mex命令后,我会收到以下错误:。
Warning: You are using gcc version '4.8.2'. The version of gcc is not
supported. The version currently supported with MEX is '4.7.x'. For a list
of currently supported compilers see:
http://www.mathworks.com/support/compilers/current_release.
Warning: You are using gcc version '4.8.2-19ubuntu1)'. The version of gcc
is not supported. The version currently supported with MEX is '4.7.x'. For
a list of currently supported compilers see:
http://www.mathworks.com/support/compilers/current_release.
Error using mex In file included from /home/labrador/Yashar_BTSync /yasharBTSync /Multimedi Recommender Systems/Video Classification/test_opticalFlow2/OpticalFlow /me x/Coarse2FineTwoFrames.cpp:2:0 /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video Classification/test_opticalFlow2/OpticalFlow/mex/project.h:7:3: error: stray ‘#’ in program
% #define _OPENCV
In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow/mex/Image.h:11:0,
from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow /mex/Coarse2FineTwoFrames.cpp:3:
/home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow/mex/Stochastic.h:11:13:
warning: extra tokens at end of #ifndef directive
[enabled by default]
#ifndef _abs(x)
^
In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow/mex/OpticalFlow.h:4:0,
from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow /mex/Coarse2FineTwoFrames.cpp:4:
/home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow/mex/NoiseModel.h:6:0:
warning: "PI" redefined [enabled by default]
#define PI 3.1415926535897932384626433832
In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video Classification/test_opticalFlow2/OpticalFlow/mex/Image.h:11:0,
from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow /mex/Coarse2FineTwoFrames.cpp:3:
/home/labrador/Yashar_BTSync/yasharBTSync/Multimedia
Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow /mex/Stochastic.h:16:0:
note: this is the location of the previous definition
#define PI 3.1415927 In file included from /home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender Systems/Video
Classification/test_opticalFlow2/OpticalFlow
/mex/Coarse2FineTwoFrames.cpp:2:0:/home/labrador/Yashar_BTSync/yasharBTSync/Multimedia Recommender
Systems/Video
Classification/test_opticalFlow2/OpticalFlow/mex/project.h:7:1: error:
expected unqualified-id before ‘%’ token
% #define _OPENCV
^,请问我怎么解决这个问题?
发布于 2022-03-29 12:07:05
在Linux服务器上使用MATLAB中的OpticalFlow时,我也面临着这个问题。我通过添加一个选项-compatibleArrayDims来解决这个问题,
mex -compatibleArrayDims Coarse2FineTwoFrames.cpp OpticalFlow.cpp GaussianPyramid.cpphttps://stackoverflow.com/questions/31607219
复制相似问题