コードは c/c++ で書かれており、コンパイル ホストの一部のライブラリに依存する場合があります。また、ライブラリに依存する問題なしに別のホストで実行する必要があります。どちらのホストも Linux で、バージョンが異なる場合があります。あなたは良い戦略を持っていますか?
質問する
299 次
4 に答える
2
アプリケーションを静的にリンクして、動的に読み込まれるライブラリにできるだけ依存しないようにします。これは、この問題の一般的な解決策です。
その他のソリューションは次のとおりです。
- 必要なライブラリをアプリケーションと共に出荷し、システムの
LD_LIBRARY_PATH
変数をオーバーライドして、含まれているバージョンを優先バージョンにします。 - とフレンドを使用してライブラリを動的にロードするコードを記述し
dlopen()
、ライブラリのバージョンの違いを手動で処理します。
于 2012-10-09T09:50:33.577 に答える
0
ほとんどのプラットフォームには、Cコードをカバーする明確に定義されたABIがありますが、C++機能をカバーするABIはまだ一般的ではありません。
libcだけを使用してC++で記述されたプログラムは、別のプラットフォームでは実行できない場合があります。バイナリ互換性が重要な問題である場合は、cの使用を検討してください。
于 2012-10-09T11:13:59.433 に答える
0
この質問に対するすべての回答を考慮して (静的リンク、最も古い Linux でのコンパイルなど)、Linux アプリ チェッカーで最終的なバイナリをチェックして、他の Linux ディストリビューションとの互換性の問題を示します。
于 2012-10-10T07:06:57.070 に答える