問題タブ [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.

0 投票する
2 に答える
1658 参照

ubuntu - Debian は .la ファイルのサポートを終了しました。どのように私は今構築するのですか?

バックグラウンド

最近、fuppes UPnP メディア サーバーに出会いました。ホーム サーバーにインストールし、ビデオを XBox にストリーミングするために使い始めました。それは本当にうまく機能し、私はそれに満足していました。次に、サーバーのディストリビューションをアップグレードすると、fuppes が機能しなくなりました。さまざまなライブラリが減価償却されたためであることがわかりました。具体的には、debian が大部分のパッケージから .la libtool ファイルを削除し始めたためです。

問題/質問

私の質問は、libtool 用の .la ファイルがないので、どうすれば fuppes をビルドできるのでしょうか? より具体的には、これは私の正確なエラーメッセージです:

/usr/lib/libogg.la ファイルはもうありません。これは端末からそれを証明します:

本当に正しい方向に向けられる必要があるだけです。libtool-automake のドキュメントを読みましたが、libogg.la をもう持っていないため、コンパイル方法を教えてくれる情報がまだありません。要するに、.la ファイルがない場合、どのようにコンパイルすればよいのでしょうか?

NBこれはすべてUbuntu Karmic Koalaにあります

0 投票する
4 に答える
258 参照

c++ - automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?

automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?

automake または libtool オブジェクトには常に次のようなコンパイル コマンドがあるようです。

問題は、同じ名前のヘッダー ファイルが 2 つあることです....

各ヘッダーには Header という名前のクラスがありますが、それぞれが異なる名前空間にあります。したがって、./proj/thisdir でビルドするときは、「-I.」含まれてしまい、./proj/otherdir のヘッダーにアクセスできません

その最初の「-I」を取り除く方法がわかりません。それが現れます。

ヒントはありますか?

ありがとうチェンツ

0 投票する
2 に答える
1417 参照

dynamic-linking - libtoolはどのようにして共有ライブラリを構築するかどうかを決定しますか?

libtoolはどのようにして共有ライブラリを構築するかどうかを決定しますか?

チェンツ

0 投票する
1 に答える
1710 参照

c++ - libtool を使用して共有ライブラリから重複した関数名をロードする

デバッグ ライブラリと同じ C API を持つ別の「実際の」共有ライブラリを呼び出す「デバッグ」共有ライブラリ (.so または .dll ファイル) を作成しようとしています (この場合、PKCS# をエミュレートするため)。 11 API)。しかし、デバッグ ライブラリのリンク マップが実際のライブラリのリンク マップと衝突し、デバッグ ライブラリが実際のライブラリの対応する関数ではなく独自の関数を呼び出すという問題が発生しています。POSIX dlmopen コマンドを使用してこの問題の解決策を見つけましたが、GNU の libtool を使用して同じことが可能かどうかを知りたいです。

私の Solaris 10 システムでは、テスト アプリケーションがデバッグ ライブラリに静的にリンクしている場合、次のコードはアサーションに失敗します。

この場合、実際の共有ライブラリ内の MyFunctionName ではなく、ローカルの 'MyFunctionName' (デバッグ ライブラリ内) への関数ポインタを取得します。

LM_ID_NEWLM「dlopen」の代わりに「dlmopen」コマンドを使用し、実際のライブラリをロードするときに(パラメーターを使用して) 新しいリンク マップを作成するように dlmopen に指示することで、この問題を回避できることがわかりました。

残念ながら、dlmopen は libtool に含まれていないようです (つまり、libtool に lt_dlmopen 関数がありません)。

libtool コマンドを使用して同じことを行うことは可能ですか?つまり、新しいライブラリをロードするときに新しいリンク マップを作成して、デバッグ ライブラリのリンク マップと衝突しないようにすることはできますか?

0 投票する
2 に答える
641 参照

c++ - 非標準 C++ サフィックスの automake 依存関係追跡

automake に非標準の C++ サフィックス ファイルの依存関係の追跡を強制的に生成させるにはどうすればよいですか? 特に、.deps ディレクトリ ファイルの内容を生成することを意味します。私もlibtoolを使用しています。

ありがとう

0 投票する
3 に答える
3375 参照

autotools - Autoconf-config.hはどこに行きますか?

私は自分のニーズに合うように(autoconf、automake、libtoolを使用して)独自の単体テストライブラリを作成しています(非常に大量の機能は必要ありません。テストランナーとアサーションだけが必要です)。使えるようになりました。

もちろん、config.hを使用して、どのヘッダーを含めるかを判断します。問題は、config.hが他のプロジェクトのconfig.hと簡単に衝突する傾向があるため、どこに行くべきかわからないことと、アーキテクチャに依存していることです。

このヘッダーをインストールするための私の方法は何ですか?(他のすべてのヘッダーで必要です)

0 投票する
1 に答える
2459 参照

static-libraries - すべてではありませんが、一部のライブラリをlibtoolで静的にリンクすることは可能ですか?

私はautoconf、automake、libtoolを使用して構築されたプロジェクトに取り組んでいます。プロジェクトは、バイナリ形式とソース形式の両方で配布されます。

Linuxでは、デフォルトで、ビルドスクリプトはすべてのライブラリに動的にリンクします。Linuxユーザーは、ディストリビューションのパッケージマネージャーを使用して依存関係を処理できるため、これは理にかなっています。

Windowsでは、デフォルトで、ビルドスクリプトはlibtoolの-all-staticオプションを使用して静的にすべてのライブラリにリンクします。Windowsには依存関係がないため、これは理にかなっています。大量のDLLを配布するのではなく、すべての依存関係を含む単一のバイナリを配布できると便利です。

OSXでは、依存関係の一部はOSによって提供され、一部は提供されません。したがって、OSが提供するライブラリに動的にリンクし、他のライブラリに静的にリンクすると便利です。残念ながら、libtoolのall-or-nothing-all-staticオプションはここでは役に立ちません。

libtoolを静的にいくつかのライブラリにリンクさせる良い方法はありますが、すべてではありませんか?

:静的ビルドのみが使用できるように、依存関係を注意深くコンパイルできることに気付きました。ただし、依存関係の静的および動的ビルドが利用可能であるという一般的なケースでは、プロジェクトのビルドシステムが堅牢であることを望んでいます。

:もちろん、上記の3つのプラットフォームすべてで常に動的にリンクされているC /C++ランタイムライブラリのような実際に低レベルの依存関係については気にしません。

0 投票する
1 に答える
12560 参照

c++ - libtool共有ライブラリ(.loファイル)をインストールして使用するにはどうすればよいですか?

したがって、libtoolを実行し、ライブラリソースからファイルを取得した後libfoo.lo、ターゲットシステムにインストールしてリンクできるように、ファイルを通常のLinux共有ライブラリfoo.oに変換するにはどうすればよいですか?libfoo.lolibfoo.so.1.0.0

0 投票する
2 に答える
283 参照

c++ - DLL/SO ビルド用に特定のフラグを指定/定義することは可能ですか?

DLL のみのビルドに固有のフラグを指定するにはどうすればよいですか。デフォルトでは libtool が追加されます-DDLL_EXPORTが、これは GNU 規則に従うほとんどのプロジェクトでは問題ありませんが、たとえば Boost を使用する場合は、ライブラリ フラグを指定する必要がある場合があります-DDLL_EXPORT -DBOOST_ALL_DYN_LINK。 DLL/SO ビルドの特定の定義。

残念ながら、libtool でこれを行う方法が見つかりません。どのフラグを使用すればよいですか?

PS: CMake への移行を提案しようとさえしないでください。

例:

バーにリンクするライブラリ foo を使用し、動的ライブラリのみのシンボルを取得するには -DBAR_EXPORTS が必要です。

のようなものはありますか

誰か?

代替ソリューション: (かなり醜い)

ファイル `defines.h を作成します。

その後:

醜いが動作するはずです。

0 投票する
0 に答える
281 参照

scons - sconsのバックエンドとしてlibtoolを使用している人はいますか?

例に興味があります。