如何在 WSL 中运行 Makefile

问题描述 投票:0回答:1

如何在 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` 
matlab makefile path windows-subsystem-for-linux
1个回答
0
投票

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

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

来自外壳。这一行将运行变量赋值,

CFLAGS='-fpic -std=c++17'
,它将
CFLAGS
设置为
'-fpic -std=c++17'
(注意引号)。此变量只会在该配方行的持续时间内设置。然后 shell 将尝试处理下一个标记
-R2018a
,它将被视为可执行文件。

我的猜测是这个食谱行中的结束语放错了地方,但你必须发布规则来确认。

© www.soinside.com 2019 - 2024. All rights reserved.