matlab 如何在WSL中运行Makefile

g2ieeal7  于 2023-05-01  发布在  Matlab
关注(0)|答案(1)|浏览(250)

如何在WSL中运行Makefile?
我在WSL中运行make -f Makefile,收到以下错误:

CFLAGS='-fpic -std=c++17' -R2018a usrp_mex.cpp usrp_gpio.cpp usrp_io.cpp -lboost_filesystem -lboost_thread `pkg-config --libs --cflags uhd`
/bin/sh: 1: -R2018a: not found
Makefile:11: recipe for target 'usrp_mex.mex' failed
make: *** [usrp_mex.mex] Error 127

似乎找不到mex命令。如何将Matlab安装添加到PATH
从Makefile:

BUILDDIR:=build

MEX=${shell which mex}
ifeq ("$(MEX)", "")
    MEX:=${shell which matlab-mex}
endif

all: usrp_mex.mex 

usrp_mex.mex: usrp_mex.cpp usrp_gpio.cpp usrp_io.cpp
    $(MEX) CFLAGS='-fpic -std=c++17' -R2018a $^ -lboost_filesystem -lboost_thread `pkg-config --libs --cflags uhd`
wgmfuz8q

wgmfuz8q1#

问题是,你实际上是在试图运行:

CFLAGS='-fpic -std=c++17' -R2018a usrp_mex.cpp...

从shell。这一行将运行变量赋值CFLAGS='-fpic -std=c++17',它将CFLAGS设置为'-fpic -std=c++17'(注意引号)。此变量将仅在该配方行的持续时间内设置。然后,shell将尝试处理下一个令牌-R2018a,它将把它视为可执行文件。
我的猜测是,结束引号是放错了地方在这个食谱行,但你必须张贴的规则来确认。

相关问题