4

作成したオーディオ ファイルをSoXを使用して遅くしようとしています。定期的に使用する Linux マシンでソース ファイルを簡単にコンパイルできますが、アクセス許可とメモリが制限されている別の Linux マシンにバイナリを転送する必要があります。自分のマシンの usr/local/bin フォルダーから別のフォルダーにバイナリをコピーしようとしましたが、関数参照が見つかりませんでした。

依存関係のないバイナリをコンパイルする標準的な方法はありますか?そうでない場合、一時フォルダーに書き込み権限しかない場合に正しい依存関係を認識するように SoX バイナリを設定するにはどうすればよいですか?

4

2 に答える 2

3

-staticのコンパイル オプションにフラグを追加して、コンパイルできますMakefileglibcただし、2 つ (またはそれ以上) の Linux ワークステーション間のバージョンの違いに注意してください。古い (または最も古い) カーネルを使用するワークステーションでコンパイル (または対象) を確認したい場合、そうしないと、Linux の古いインストールでは満たすことができない新しいカーネルへの依存関係が原因で、バイナリが機能しない可能性があります。したがって、基本的には、より良い結果を得るために、最も古いマシンでコンパイルしてください。

于 2012-01-11T07:53:48.907 に答える
2

依存関係のない実行可能ファイルを生成するために必要な最も重要なことは、この実行可能ファイルが使用するすべてのライブラリの静的バージョンです。通常、ライブラリも共有です。つまり、別のライブラリの関数を呼び出す必要がある場合は、共有リンクを使用します。2 級の依存関係を取得しないようにするには、必要なすべてのライブラリを静的にコンパイルする必要があります。

于 2012-01-11T07:54:18.720 に答える