0

組み込みベンダーが提供するバージョンのLinuxで実行されるアプリケーションを構築する必要があります。ドキュメントによると、libcバージョン2.8.90があります。デスクトップ上のC++で単純なアプリケーションを構築し、リンク先のライブラリのコピーとともにバイナリをハードウェアにコピーしました。異なるバージョンのライブラリに対するリンクの潜在的な競合を取り除くために、ライブラリへの静的なリンクを試みることを検討しました。いくつかの調査の後、私は次の質問と回答を見つけましたそしてそれを読んだ後、静的にリンクすることは良いことではないという印象を与えました。ここ(またはこれまでのところ)で見つけられなかったのは、なぜこれが眉をひそめているように見えるのかについての簡単な説明でした。私(Linuxの初心者)には、実行可能ファイルを単一のパッケージとしてバンドルしてハードウェアで実行するという問題を解決する方法のように思えますが、明らかに悪い考えと見なされているようですが、誰かに説明してもらえますか?どうして??

明らかに、それが私のバイナリの肥大化を引き起こすことを私は知っていますが、私はそれについて心配していません。さらに、私はライセンスの問題を認識していますが、特にその側面には関心がありません。これは商用アプリケーションではないので、私には当てはまらないと思います。

4

1 に答える 1

4

利点は、ご想像のとおり、他の依存関係をインストールしなくても機能し、簡単に移動できる単一のバイナリです。

不利な点は、サイズと、リンクされたライブラリの更新(セキュリティ修正など)がある場合にアプリケーション全体を再コンパイルする必要があることと、おそらくライセンスの問題(あなたが指摘したように)です。

トレードオフ。それがあなたの問題を解決するなら、それのために行きなさい。

于 2012-07-09T13:12:25.893 に答える