64 ビット Ubuntu 12.04 で実行する C++ アプリケーションを開発しています。32 ビット 12.04 Ubuntu ラップトップでコードを開発し、それを git リポジトリにアップロードし、サーバーにプルして、プルしたソースをネイティブにビルドします。
最近まで問題なく動作していましたが、今日、64 ビット サーバーでコンパイルしようとすると g++ 4.6.3 がクラッシュし、クラッシュ レポートを送信するように指示する出力が表示されました (g++ 4.6.3 は私が持っているのと同じバージョンです)。私の開発マシンでも)。同一のコードは、私の開発マシンでクラッシュを引き起こしませんでした。
クラッシュした理由を尋ねているわけではありませんが、可能であれば何が問題だったのか知りたいです。g++ は、問題が発生したときにファイル ログを生成しますか? 私のコードが物議を醸すようなことをしていないことがわかる限り、私はテンプレートを作成していません。単純に、いくつかのブースト ライブラリ、mysql++、openssl、および自分で作成したいくつかの静的ライブラリを使用しています。私は本当にこのアプリケーションを毎日実行する必要があるので、できるだけ早くこれを修正したいと思っています. 物事に対処するために次の方法を考えることができます
- コードのどの部分がコンパイラをクラッシュさせたのかを調べ、それに応じてコードを書き直してください。
- 別のサーバーをレンタルします。
- g++ をアップグレード (またはダウングレード) するか、サーバーに追加の g++ を作成して試してください。Ubuntuでg ++をアップグレードするとシステムが台無しになる可能性があることを読んだので、これを行うのは気が進まない.
- 私は Eclipse を使用して開発マシンですべてをビルドし、git プロジェクトの一部として作成した Eclipse で生成された makefile を使用してサーバーでコードをビルドするだけです。ビットサーバー。
進め方についてアドバイスをいただければ幸いです。私はコンパイラが内部でどのように機能するかについての専門家ではなく、この種のエラーに遭遇したのはこれが初めてなので、次に何をすべきかよくわかりません.