我正在尝试创建一个 makefile 架构,因此我在顶部有一个全局 makefile,它在子目录中调用另一个全局 makefile。
全局生成文件:
CC = gcc
CFLAGS = -W -Wall -pedantic
LDFLAGS =
PROJECT = proj
SOURCES =
PATH = $(PROJECT)
include $(PATH)/Makefile
all : $(PROJECT).exe
$(PROJECT).exe :
$(CC) $(CFLAGS) $(LDFLAGS) $(DEFINES) $(INCLUDES) $(SOURCES) -o $@
clean :
rm -rf *.exe
Run Code Online (Sandbox Code Playgroud)
子目录生成文件:
CC = gcc
CFLAGS = -W -Wall -pedantic
LDFLAGS =
SOURCES += $(PATH)/main.c
Run Code Online (Sandbox Code Playgroud)
当我在顶级目录中“make”时,出现以下错误:
gcc -W -Wall -pedantic proj/main.c -o proj.exe
make: gcc: Command not found
make: *** [Makefile:17: FK16_jake.exe] Error 127
Run Code Online (Sandbox Code Playgroud)
但是当我在终端中输入完全相同的命令(gcc -W -Wall …
在请求一些参数(arg)和选项(-a)的脚本中,我想让脚本用户可以将选项放置在命令行中他想要的位置。
这是我的代码:
while getopts "a" opt; do
echo "$opt"
done
shift $((OPTIND-1))
echo "all_end : $*"
Run Code Online (Sandbox Code Playgroud)
通过这个命令,我得到了预期的行为:
./test.sh -a arg
a
all_end : arg
Run Code Online (Sandbox Code Playgroud)
我想用这个命令得到相同的结果:
./test.sh arg -a
all_end : arg -a
Run Code Online (Sandbox Code Playgroud)