私はapple-darwin11-llvm-g ++ - 4.2コンパイラでコンパイルしているプロジェクトを持っています。このプロジェクトはRedHat Linux上のGCC 4.4.5でコンパイルされますが、実行時には非常に奇妙なことが起こります。実行時エラーはありませんが、プログラムの出力はまったく異なります。RedHatのGCC 4.4.5でランタイムに問題が発生しましたが、Apple llvm 4.2では問題なく動作しますか?
私はGDBにとってかなりひどいので、私は今夜真夜中にこのプロジェクトを学校に提出する必要があります。これを引き起こしている可能性のあることを誰かが示唆することはありますか?おそらく、私はどこかで見ることができるこれらの2つのコンパイラのいくつかの既知の違いは?
私はこれが非常に曖昧であることを認識しています。私は何が起こっているのか把握できるようにgdbを使用する方法を学んでいます。私は@AdrianCornishによって提案されたチェックリストを経て、この問題解決するために
コンパイラの警告が表示されますか? – Pubby
プログラムの出力が同じでない場合は、言語を誤って使用している可能性が高く、未定義の動作が発生している可能性があります。コンパイラの違いはほとんどありません。あなたは使用する前にすべての変数を初期化しましたか?境界内でメモリを正しく割り当てて使用していますか?関数内の変数はデフォルト値に初期化されていますか? –
どちらも64ビットをビルドしていますか?静的アナライザーを試しましたか? –