【发布时间】:2017-10-10 18:00:51
【问题描述】:
我在 Archlinux 中的 GDB 有问题:
即使我在我的 Makefile gdb 中添加 -g 说 (no debugging symbols found)...done.。
但如果我手动编译 gcc -g *.c 它可以工作...
我不知道我的 Makefile 中有什么不起作用?
我的 Archlinux:
Linux sime_arch 4.13.4-1-ARCH #1 SMP PREEMPT Thu Sep 28 08:39:52 CEST 2017 x86_64 GNU/Linux
我的海合会:
gcc version 7.2.0 (GCC)
我的 Makefile:
SRC = test.c \
test2.c
OBJ = $(SRC:.c=.o)
NAME = test_name
CFLAG = -Wall -Werror -Wextra
all: $(NAME)
$(NAME): $(OBJ)
gcc -g $(OBJ) -o $(NAME) $(CFLAG)
clean:
rm -f $(OBJ)
fclean: clean
rm -f $(NAME)
re: fclean all}
提前致谢
【问题讨论】:
-
您仅将
-g添加到链接命令中。自动编译命令没有得到-g标志。将-g添加到CFLAGS本身 -
标准变量是
CFLAGS,使用默认规则,所以你必须使用默认名称变量来为你的对象编译添加标志。有关制作手册的更多信息。