0

C++/Free Pascal 混合プログラム、Linux。以前は 32 ビットの Debian ボックスでビルドし、64 ビットの CentOS 5.3 サーバー ボックスで実行しましたが、問題なく動作しました。Debian ボックスを 6.0.3 (Squeeze) にアップグレードしました。次の再構築後、プログラムはサーバー ホスト上で実行されなくなり、代わりに次のように出力されます。

myapp: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by myapp)
myapp: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by myapp)

を実行するls -l /usr/lib/libstdc++*と、開発ボックスlibstdc++.so.6では へのシンボリック リンクlibstdc++.so.6.0.13であるのに対し、ホストでは へのシンボリック リンクであることがわかり libstdc++.so.6.0.8ます。それが犯人かもしれません。

トラブルシューティング戦略を提案できますか? どうにかして以前のバージョンの libstdc++ を開発ボックスに置いて、それに対してリンクを試みるか、製品ボックスをアップグレードする必要がありますか?

4

1 に答える 1

0

トラブルシューティング戦略を提案できますか

トラブルシューティングは必要ありません。この回答を読むだけです。

どうにかして以前のバージョンの libstdc++ を開発ボックスに置いて、それに対してリンクしようとする必要があります。

それはうまくいきません。新しい GCC は で定義されているシンボルを発行しlibstdc++.so.6.0.13、それに対するリンクlibstdc++.so.6.0.8は失敗します。

または製品ボックスをアップグレードしようとしますか?

可能であれば、それが最も簡単なオプションかもしれません。

于 2012-05-20T23:31:27.710 に答える