![](/img/trans.png)
[英]Reading symbols from sshell…(no debugging symbols found)…done. (Yes, I used -g when compiling)
[英]No debugging symbols found in ArchLinux with -g
我在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:
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
添加到鏈接命令。 目標文件由make的自動編譯目標生成。 這里沒有-g
標志。
你有2個選擇 -
將變量CFLAG
更改為CFLAGS
並向其添加-g
。 自動編譯命令選擇CFLAGS
,它將創建帶有調試信息的目標文件
添加以下目標 -
%.o: %.c gcc -g $(CFLAG) -o $@ $<
在$(NAME)
目標之前。
第二種方法可以讓您更好地控制目標,但第一種方法是標准的編譯方式。
此外,除非您特別需要單獨命名,否則請始終嘗試使用變量的標准名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.