0

ncursesを使用してセットアッププログラムのテキストを表示するビジュアルプログラムがあります。gcc2.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 に答える