0

我有一个使用 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 是在另一个文件中定义的结构。

4

1 回答 1

0

由不同编译器(或同一编译器的不同版本)编译的库可能使用不同的调用约定,因此不具有二进制兼容性。如果您还没有查看是否可以修复它,您可能会考虑使用新编译器重新制作整个项目。

于 2012-10-10T21:08:37.393 回答