【发布时间】:2015-06-22 12:37:19
【问题描述】:
我的 makefile 有一些问题。 我只想测试 src/launcher.c 上的编译是否失败。 但在此之前,我只是无法转换此 bash 代码:
out=$(gcc -c src/launcher.c -o /obj/launcher.o 2>&1)
到“Makefile 代码”
事实上,我想做这样的事情: Handling gcc warnings and output in a Bash Script 但是在makefile中
如果你有什么想法,请。
CC = clang
RM = rm -f
NAME = automakefile
CFLAGS += -Wall -Wextra
CFLAGS += -O2 -march=native -fomit-frame-pointer
LDFLAGS +=
OBJS_DIR = ./obj/
SRCS_DIR = ./src/
INCLUDES += -I ./src/include
OBJS_FILES = launcher.o
OBJS = $(foreach obj,$(OBJS_FILES),$(OBJS_DIR)$(obj))
all: script $(NAME)
script:
@if [ ! -d "$(OBJS_DIR)" ]; then \
mkdir $(OBJS_DIR); \
fi
$(NAME): $(OBJS)
$(CC) $(CFLAGS) $(OBJS) -o $(NAME) $(LDFLAGS)
$(OBJS_DIR)%.o: $(SRCS_DIR)%.c
//This line isn't working!
$(eval TMP=$$(gcc -c src/launcher.c -o obj/launcher.o 2>&1))
echo $(TMP)
clean:
$(RM) $(OBJS)
fclean: clean
$(RM) $(NAME)
re: fclean all
.Phony: all script clean fclean re
谢谢 祝你有美好的一天
【问题讨论】:
-
"if" 是测试 echo 的状态,这个永远是真的。
-
我删除了 if 以免混淆,因为它不是主要问题。我需要在顶部转换 bash
-
对不起,我更新了...
标签: bash error-handling makefile