我正在尝试编译一个使用MATLAB中的UHD(USRP硬件驱动程序)实用程序的C ++文件。这与尝试在具有Windows 10 OS的64位系统上使用名为NI-2954R的USRP和MATLAB 2013b有关。
以下是mex
命令:
mex -largeArrayDims -v -g rx_samples_to_file.cpp -I. "C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\uhd"...
-I."C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\boost_1_55_0\boost"...
-L."C:\Program Files\MATLAB\R2013b\extern\lib\win64\microsoft" ...
uhd.lib ...
uhd.lib libmx.lib libmex.lib libmat.lib ...
"C:\Program Files\MATLAB\R2013b\extern\lib\win64\microsoft"
我收到以下错误:
LINK : fatal error LNK1181: cannot open input file 'C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\uhd.obj'
C:\PROGRA~1\MATLAB\R2013B\BIN\MEX.PL: Error: Link of 'rx_samples_to_file.mexw64' failed.
Unable to complete successfully.
Error in make_rx_samples_to_file (line 4)
mex -largeArrayDims -v -g rx_samples_to_file.cpp -I. "C:\Users\VINAYAK
KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\uhd
为什么会出现此错误,如何解决该编译问题?
答案 0 :(得分:0)
您的MEX命令有一些重复的部分,我认为这是由于复制粘贴错误引起的。我会假设您实际使用过:
mex -largeArrayDims -v -g rx_samples_to_file.cpp ...
-I. "C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\uhd"...
-I."C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\boost_1_55_0\boost"...
-L."C:\Program Files\MATLAB\R2013b\extern\lib\win64\microsoft" ...
uhd.lib libmx.lib libmex.lib libmat.lib
您有一个参数-I.
,指示您要将当前目录(.
)添加到编译器的include路径,然后是另一个参数"C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\uhd"
,指示您要添加该文件到编译。因此,mex
将查找文件uhd.obj
,该文件不存在。
解决方案是不要用空格分隔-I
参数的两个部分,并且不要在.
参数后面添加-I
(您也可以在{{ 1}}参数)。这导致:
-L
尽管我对此感到惊讶,但在the documentation to the mex
command中您会发现推荐的语法为:
mex -largeArrayDims -v -g rx_samples_to_file.cpp ...
-I"C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\uhd" ...
-I"C:\Users\VINAYAK KARANDIKAR\Documents\MATLAB\MATLAB\Thesis\MATLAB_USRP_INTERFACE\UHD_sample_programs_from_GitHub\boost_1_55_0\boost" ...
-L"C:\Program Files\MATLAB\R2013b\extern\lib\win64\microsoft" ...
uhd.lib libmx.lib libmex.lib libmat.lib