我正在做一个适用于ELF文件的项目。现在我使用以下作为示例输入 -
class C {
public:
C();
C(int x, int y);
int getX();
private:
int x;
int y;
};
class SubC : public C {
int z;
};
int f() {return 0;}
C c;
SubC subC;
int i;
double d;
然后我跑
gcc test.cpp -g -c -o test.o
我按预期得到test.o。然后我将test.o提供给我发现的名为peter-dwarf的库。我的问题是该库说“在test.o中找不到部分.debug_str”
编译时我做错了什么?或者图书馆不工作?
编辑:应该是那里的-g
答案 0 :(得分:1)
在gcc中使用-g
生成调试符号。您还可以参考gcc here的调试选项文档。
如果您的系统以某种方式配置,则-g
可能不包含DWARF信息。有一些与DWARF相关的开关具体,所以如果单独-g
不起作用,您可能需要去那里并与其他开关一起使用。
答案 1 :(得分:0)
您可能需要在启用调试信息的情况下进行编译。尝试:
gcc -g test.cpp -c -o test.o