GDB不';t使用-D\u文件\u偏移量\u位=64 我正在雪豹上编写i38 6C++应用程序。

GDB不';t使用-D\u文件\u偏移量\u位=64 我正在雪豹上编写i38 6C++应用程序。,c++,gdb,C++,Gdb,当我使用-D_FILE_OFFSET_BITS=64编译时,我不能将二进制文件与gdb一起使用。我收到以下错误消息: 警告:找不到对象文件“/var/folders/kw/kwmH332LGwCIh3GrRREgCk+++TI/-Tmp-/ccZfMAM5.o”-“test.cpp”没有可用的调试信息。这可能与-D_文件\u偏移量\u位=64无关 在Mac OS上编译时,调试信息不会拉入可执行文件,而是保留在对象文件中,调试器会在其中查找 从您的警告消息中,您似乎执行了以下操作: g++ -D_

当我使用-D_FILE_OFFSET_BITS=64编译时,我不能将二进制文件与gdb一起使用。我收到以下错误消息:


警告:找不到对象文件“/var/folders/kw/kwmH332LGwCIh3GrRREgCk+++TI/-Tmp-/ccZfMAM5.o”-“test.cpp”没有可用的调试信息。

这可能与
-D_文件\u偏移量\u位=64
无关

在Mac OS上编译时,调试信息不会拉入可执行文件,而是保留在对象文件中,调试器会在其中查找

从您的警告消息中,您似乎执行了以下操作:

g++ -D_FILE_OFFSET_BITS=64 -g test.cpp
这将创建一个临时对象文件(名称类似于
ccZfMAM5.o
),将该对象文件链接到可执行文件中,然后删除该对象文件。由于调试器无法从不再存在的对象文件中读取调试信息,因此会收到警告

相反,请执行以下操作:

g++ -g -c -D_FILE_OFFSET_BITS=64 test.cpp
g++ -g test.o

这将使
test.o
对象文件(以及其中包含的调试信息)可供调试器使用。

是的,我认为D_文件\u偏移量\u位是一种误导。谢谢