簡體   English   中英

使用-g在ArchLinux中找不到調試符號

[英]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個選擇 -

  1. 將變量CFLAG更改為CFLAGS並向其添加-g 自動編譯命令選擇CFLAGS ,它將創建帶有調試信息的目標文件

  2. 添加以下目標 -

    %.o: %.c gcc -g $(CFLAG) -o $@ $<

    $(NAME)目標之前。

第二種方法可以讓您更好地控制目標,但第一種方法是標准的編譯方式。

此外,除非您特別需要單獨命名,否則請始終嘗試使用變量的標准名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM