GNU Libtoolは、 GNU ビルド システムの一部であるソフトウェア開発ツールで、ソース コードから共有ライブラリをコンパイルする際のソフトウェア移植性の問題を解決するために作成されたシェル スクリプト[ 3 ]で構成されています。共有ライブラリをコンパイルするコマンドに関して、コンピューティング プラットフォーム間の違いを隠蔽します。 [ 4 ]プラットフォーム間で同一のコマンドライン インターフェイス を提供し、プラットフォームのネイティブ コマンドを実行することで、ソフトウェア開発者はLinux、BSD系、Windows ( Cygwin経由)、HP-UX、Solaris ( SPARCプロセッサを含む)、AIX、IRIXなど、さまざまなプラットフォームでコードのビルド サポートを提供できます。[ 5 ]
オペレーティングシステムによって共有ライブラリの扱い方が異なります。中には共有ライブラリを全く使用しないプラットフォームもあります。ソフトウェアプログラムの移植性を高めるのは難しい場合があります。Cコンパイラはシステムごとに異なり、一部のシステムでは特定のライブラリ関数が欠落していたり、ヘッダーファイルの名前が異なったりするからです。
Libtoolは、様々なUnix系オペレーティングシステム上で静的ライブラリと動的ライブラリを作成する際の管理を支援します。Libtoolは、ライブラリ作成プロセスを抽象化することで、様々なシステム間の違い(例えば、LinuxシステムとSolarisなど)を隠蔽し、この目的を達成します。
GNU Libtool は、「プラットフォーム固有の依存関係とユーザーインターフェイスの両方を単一のスクリプトにカプセル化」することで、新しいシステム上でコンピュータ プログラムをコンパイルするプロセスを簡素化するように設計されています。 [ 6 ]プログラムを新しいシステムに移植する場合、Libtool は、移植者が構築する共有ライブラリの低レベルのドキュメントを読む必要がなく、 configureスクリプト (または同等のもの) を実行するだけで済むように設計されています。 [ 6 ]
Libtool は、GNU ビルド システムの他の 2 つの移植性ツール であるAutoconfとAutomakeで使用されています。直接使用することもできます。 [ 7 ]
GNU Libtool がリリースされて以来、他のフリーソフトウェアプロジェクトがさまざまなソフトウェアライセンスの下でドロップイン代替品を作成してきました。[ 8 ] slibtoolはそのような実装の 1 つです。[ 9 ]