首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么gdb找不到任何调试符号,即使我在Makefile中的每个编译和链接阶段都有-g?

为什么gdb找不到任何调试符号,即使我在Makefile中的每个编译和链接阶段都有-g?
EN

Stack Overflow用户
提问于 2020-03-27 05:14:27
回答 1查看 125关注 0票数 0

我在macOS Catalina版本10.15.2上下载了GDB9.1。我正在尝试从一个用C编写的名为test的代码中调试一个可执行文件,该代码是在我的Makefile中创建的,并链接到一个静态库。我已经尝试将-g和-ggdb放在所有编译行和链接行中。我确保在每次进行更改时都使用make clean,然后运行make test重新运行Makefile。我的Makefile如下所示:

代码语言:javascript
运行
复制
all: main
    mkdir -p build/bin
    mkdir -p build/lib
    mkdir -p build/objects
    mv *.o build/objects
    mv *.a build/lib
    mv main build/bin

main: main.o liblinkedlist.a
    gcc main.o -g -o main -llinkedlist -L.

test: test.o liblinkedlist.a
    gcc test.o -g -o test -llinkedlist -L.
    mkdir -p build/bin
    mkdir -p build/lib
    mkdir -p build/objects
    mv *.o build/objects
    mv *.a build/lib

test.o: src/bin/test.c
    gcc src/bin/test.c -g -c -I include

main.o: src/bin/main.c
    gcc -g src/bin/main.c -c -I include

liblinkedlist.a: src/lib.c
    gcc src/lib.c -g -c -I include
    ar rs liblinkedlist.a lib.o

clean:
    rm -rf build
    rm -f test
    rm -f main

当我尝试执行gdb ./test时,它会在终端中显示以下几行代码:

正在从./test中读取符号...

警告:无法打开OSO存档文件"/Users/eamonohare/Desktop/Spring_2020_Classes/CSE_109/homework-3/./liblinkedlist.a“

警告:`/Users/eamonohare/Desktop/Spring_2020_Classes/CSE_109/homework-3/test.o':无法打开读取符号:没有这样的文件或目录。(在./test中找不到调试符号)

(gdb)

我已经尝试了这个解决方案给每个有这个问题的其他用户,但是他们都不起作用。我不确定我该如何解决这个问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 08:59:00

将源代码、目标文件和可执行文件放在运行gdb的同一目录中

还有其他方法,在进入run之前,需要在gdb中使用一些简单的命令;但是,这些方法一遍又一遍地重做很麻烦。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60876238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档