問題タブ [libtool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
autotools - Autotools: config.guess、depcomp、または ltmain.sh を SVN リポジトリに保存する必要がありますか?
プロジェクトを引き継いでいますが、Subversion リポジトリに、config.guess、depcomp、ltmain.sh など、libtool と automake のディストリビューションに属するファイルがいくつかあります。これは単純に間違っていると思います。なぜなら、チェックアウトするときはマシンに autotools をインストールして autoreconf を実行する必要があるからです。
どう思いますか ?これらのファイルをリポジトリに置くという点を見逃していますか?
autotools - autotools/libtool の使い方を学ぶには? (嫌いな人もいますか?)
いくつかのプロジェクトに「ltmain」、「aclocal.m4」、およびその他の「autogen.sh」がすべて含まれていると、不快感が生じます。
./autogen.sh
遅い。./configure
遅い。./configure
何かが足りないと文句を言って失敗します。私はそれを修正し、次のことについて不平を言います。遅い。- Makefile は BIG です。構成スクリプトは大きいです。でも
configure.ac
、通常は大きくて理解できません。 - Makefile.am と configure.ac は、ほとんど謎の変数でいっぱいです。どのようにルールを導き出すのですか?
- libtool のシェル スクリプト スタブだけをコピーしたことに突然気付きました。
.deps
.libs
- 一般に、そこで何かが壊れていると、何をすべきかわからず、エラー メッセージは通常混乱を招きます。
- 最後に、小さなプロジェクトでも、autotool の configure スクリプトがある場合 (ソース コードがアーカイブで 5kb になる場合)、アーカイブで少なくとも 50kb になります。
問題が発生するたびに、{auto,lib} ツールへの憎悪ポイントがどんどん増えていきます。
それらのことをうまくやっていくにはどうすればいいですか?短いチュートリアル (長めの「GNU ビルド システムの紹介」やその呼び方ではありません) と、その作成、修正、デバッグの方法に関する包括的なリファレンスはありますか?
macos - Instruments.app で libtool 実行可能ファイルを実行する方法
OS x 実行可能ファイルのメモリ リークをチェックしたい。そのために Instruments.app を使用したいと思います。しかし、libtoolが作成するラッパーで実行する方法がわかりません(ライブラリパスの追加など)。Instruments ターゲットに glibtool --mode=execute myapp のようなものを使用できますか。libtoolスクリプトでgdbを起動するようなものですか?
c++ - Bluegene システムは ltdl またはその他の種類の dlopen() サポートをサポートしていますか?
そのため、ライブラリのロードに使用するコードがいくつかdlopen
あり、それを bluegene システムで動作させたいのですが、テストする bluegene がなく、直接作業したことがありません。bluegene は をサポートltdl.h
していますか、それとも他のものを使用していますか? もしそうなら、それは何を使用しますか?
c - autoconfは必要な場合にのみ-fPICを設定します
LinuxおよびWindows用にコンパイルしたいautoconf/libtoolを使用して共有ライブラリを作成しています(mingwクロスコンパイラを使用)。Linux(およびそれをサポートする他のプラットフォーム)の場合、-fPICを設定する必要があります。そこで、Makefile.amのCFLAGSに入れました。しかし、mingwとクロスコンパイルすると、gccは警告を表示します。
したがって、明らかにこのオプションはWindowsコードには必要ありません。これは単なる警告ですが、とにかくそれを取り除きたいと思います。これどうやってするの?たぶん、オプションがサポートされているかどうかをチェックし、必要なときにのみ設定するlibtool / autoconf機能がすでにあるので、Makefile.amでこれを手動で行う必要はありませんか?
file - 複数のディレクトリに同じファイル名のソースがある場合に libtool でライブラリを作成する方法
libtool を使用してライブラリをコンパイルしようとしています。問題は、複数のディレクトリに同じファイル名の複数のソース ファイルがあることです。そのため、autoreconf 中に libtoolize がエラーをスローします。
基本的に、私のファイルシステムのレイアウトは次のとおりです。
はMakefile.am
src/ ディレクトリに配置され、 を使用してメインの Makefile.am によって呼び出されSUBDIRS = src
ます。内容は次のようになります。
ただし、autoreconf を実行すると、エラーが発生します。
それを解決する方法は?各サブディレクトリに Makefile.am を追加する必要があると思います。正確にそれを行う方法は?Google は解決策を見つけるのに役立ちませんでした。
python - libtool python モジュールのリンクとインストール
スタティック ライブラリを生成する autotools を使用して、C で記述されたプロジェクトに取り組んでいます。同じプロジェクトのコンテキストで、C API への Python インターフェイスも提供しています。移植可能な方法で静的ライブラリと動的ライブラリの両方を提供できるようにするために、最近までプロジェクトに libtool を導入する許可がありませんでした。これまでのところ、distutils を使用して Python 共有モジュールを作成し、Python モジュールをプロジェクトの C スタティック ライブラリにリンクしました。繰り返しますが、これは libtool/shared ライブラリを ecuation に導入することを許可されていないためです。libtool を入れたいので、次の 2 つの問題のあるシナリオに直面しています。
distutils を使用して Python 共有モジュールを作成し続ける場合、distutils と autotools は相互に通信しないため、どの C ライブラリにリンクするかを distutils に伝える必要があります。これまでのところ、それを行う方法は考えられませんが、.la ファイルを解析して、libtool が生成できたライブラリの名前とパスを取得します。libtool は、システム上で作成できたライブラリのタイプに関する情報を提供しますか?
Python モジュールの生成を automake に移行しても、インストール プロセスに到達するまでは問題ありません。libtool に、Python モジュールを別の場所に置きたいが、lib フォルダ、つまり「lib/python2.5/site-packages/myproject」を指定する方法がわかりません。ライブラリをMakefileにコピーしようとしましたが、ライブラリのrpathが間違っていたため(インストールではなくビルドのもの)、正しく機能しませんでした。なぜそこに欲しいのですか?.py ラッパーもあるからです。では、libtool にモジュールを別の場所にインストールして rpath を適切に設定するように指示する方法はありますか?
私はエレガントなソリューションを探しているだけだと思います。あるいは、ソリューションがそこにあり、それはシンプルですが、十分な経験がないため、それを見ることができません。助けはありますか?
PS オプション 2 を希望します。機能させることができれば、autotools から distutils に情報を渡す必要がないためです。
c++ - automake+libtool+c++ = 非常に肥大化したインターフェース
まず、「include_HEADERS = 'my public headers'」と「libfoobar_la_SOURCES = 'private sources' 'private headers'」があります。すべて良好。コンパイル/インストール/リンクします。しかし、「nm -C my_instaed_lib.so」を実行すると、次のようになります。
これは、どのヘッダーでも宣言されていません。
これはプライベートではインストールされていないヘッダーです。
automake/libtool のマニュアルを 2 回読みましたが、インターフェイスからこのがらくたを削除する方法がわかりません。または、このがらくたを公開APIに公開できるものは何ですか。パブリック API にエクスポートされたものをどのように制御しますか?
redhat - プログラムをビルドした後、libtoolは使用されますか?
xmlsecの作成を開始しましたが、コンピューター上のlibltdlライブラリが認識されないことに気付きました。ハンティングを開始しましたが、シンボリックリンクlibltld.so-> libltdl.so.3が欠落していることがわかりました!
私が使用しているディストリビューションは「RedHatEnterpriseLinux Serverリリース5.5(Tikanga)」です。
私は自分自身に思いました...多分これはバグですか?しかしここで?gcc、redhat、xmlsec。redhat "https://bugzilla.redhat.com/show_bug.cgi?id=469718"のバグレポートを見ると、苦情が出されており、応答は次のとおりでした。
「これはバグではありません。/usr/lib/libltdl.soはコンパイル中にのみ必要になるため、libtool-ltdl-develによって提供されます。」
したがって、問題は次のとおりです。libtoolは、標準の「./configure&make」プロセスの後に使用されることがありますか?libltdlが「コンパイル中にのみ必要」と書かれている場合、 Redhatはどういう意味ですか?しかし、標準のlibtoolはそうではありませんか?
ありがとう、チェンツ
autoconf - Autoconf、Libtool 共有および静的ライブラリ
製品をビルドするために autoconf gnu ツールを使用しています。*.la が言及されている任意のライブラリに対して、共有ライブラリと静的ライブラリの両方を生成します。問題は、.la を使用して Makefile.am でバイナリをリンクする場合です。動的ライブラリとリンクしていますが、バイナリにlddを使用すると、共有ライブラリとリンクしているにもかかわらず、「動的実行可能ファイルではありません」と表示されます。バイナリがビルドされた後に共有ライブラリを削除してそれを証明し、バイナリを実行しようとしました。共有ライブラリが見つからず、実行できませんでした。もう 1 つの質問は、Makefile.am 方向を使用してライブラリを指定された場所に配置する方法です。