我有一个使用ncurses显示安装程序文本的可视程序,它似乎在gcc 2.9.5上工作正常(不要问)但是在新的gcc上它崩溃了。
char *
dofDisplay(dlistptr *ptr)
{
static char p[100];
sprintf(p, " %-36s ", (*ptr)->datainfo.option);
return p;
}
GDB报告以下内容:
0x0000000000402811 in dofDisplay (ptr=Variable "ptr" is not available.
) at file.c:676
676 sprintf(p, " %-36s ", (*ptr)->datainfo.option);
dlistptr是在另一个文件中定义的结构。
答案 0 :(得分:0)
由不同编译器(或同一编译器的不同版本)编译的库可能使用不同的调用约定,因此不具有二进制兼容性。您可以考虑使用新编译器重新构建整个项目,如果您还没有看到是否修复它。