【发布时间】:2020-08-19 16:38:00
【问题描述】:
这是错误
g++ -o -g home debugTest.cpp
/usr/bin/ld: home: _ZSt4cout: invalid version 4 (max 0)
/usr/bin/ld: home: error adding symbols: bad value
collect2: error: ld returned 1 exit status
make: *** [Makefile:2: home] Error 1
非常令人困惑的是,当我在-o 之后添加-g 时会发生这种情况,反之亦然。我仍然得到“没有加载任何符号”。显然没有这些符号我无法运行run,我显然需要运行run 进行调试。这种“外部”调试只是因为我认为使用 VSC 调试 C++ 并不那么容易。你可以在this看到更多。
谢谢。
编辑
这是我运行gdb home(home 是可执行的)时得到的结果,反之亦然,顺序为-o 和-g。
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from home...
(No debugging symbols found in home)
(gdb)
运行 file 或 exec-file home 曾经给我“家中没有符号”但现在它询问我是否要删除 file 的表或导入 exec-file 的新表。当我选择后者时,我收到了相同的消息no debugging symbols。
【问题讨论】:
-
请在交换
-o和-g时显示错误消息。 -
我编辑了发生的事情。
-
当您使用
-o -g时,是否在您的构建目录中创建了一个名为a.out或-g的文件?在那种情况下,home真的得到了更新吗? -
我不太明白你的意思。起初文件
-g被创建,当-o和-g的顺序不正确时,我似乎从未创建a.out。据我记得,home保持不变。 -
不知何故,您的旧
home文件(如果您想查看它现在是home.backup)没有得到更新。也许您之前的命令有错字。很难说。