問題タブ [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.
c++ - libtool を使用してバイナリと .so を作成する方法
バイナリに直接コンパイルし、共有ライブラリにもコンパイルしたい cpp ファイルのセットがあります。
私は持っている
これを実行すると、cpp ファイルが 2 回コンパイルされます。1 回は libtool を使用し、もう 1 回は使用せずに、libtool/automake が不平を言うことがあります。
COMMON_SOURCES を .a ファイルに入れようとしましたが、.a を .la にリンクすると libtool が文句を言います (移植性がないと言っています)。
私が必要とするのは次のようなものです
しかし、それは存在しません
編集: 明確化 - 私は automake/autoconf を使用しています。上に示したのは、私の automake Makefile.am の要点です。
makefile - libltdl による再帰的 make の爆発
私の Makefile.am には、
これは、パッケージに含まれている libltdl のバージョン (つまり ) を使用できるようにしたいためです./configure --with-included-ltdl
。ただし、make が自分自身を再帰的に永遠に呼び出すという問題に遭遇することがあります。残念ながら、これがどのような条件で発生するのか正確にはわかりません。
これは通常、autoconf と configure を再実行することで解決されます。これはそうではないように思われるので、これを行う「適切な」方法を知りたいです。(configure.acを更新した後、単に実行autoreconf && autoreconf libltdl
するだけでなく実行する必要があることもわかりましたautoreconf
)
助けてくれてありがとう!
linux - CCLDだけでなく完全なリンクコマンドを取得する方法/makeファイルでサイレントルールを無効にする方法
現在アプリを作成していますが、リンクでエラーが発生します。コマンドは次のとおりです。
今、私は完全なリンクコマンドを見たいです、どんな助けでもありがたいです。
PS。
Ubuntu10.04でc++プログラミング言語のGNUBuildSystemを使用しています。
c++ - libtool と autoconf の LT_VERSION が認識されない
私の configure.in ファイルにはLT_VERSION="1.1"があります。autoconf と libtool の最新バージョンを使用しています。autoconf または autoreconf を使用しているときに、次のエラー メッセージが表示されます。
私に何ができる?
gtk - libtool は「ライブラリが移動された」と思いますが、そうではありません
現在、ソースから gtk+ と依存関係を再コンパイルしています (他に選択肢はありません)。
すべてのカスタム パッケージは、特定のカスタム ポイント ( と呼びましょう/packages
) にインストールされます (奇妙に思えるかもしれませんが、今回も他に選択肢はありません)。
pango を再コンパイルしようとすると、freetype が必要になります。Freetype はすでにインストールされており/packages/freetype/2.1.10/amd64-linux
(lib、include ... はこのディレクトリにあります)、別の構成パスが設定されています ( LD_LIBRARY_PATH
、LIBRARY_PATH
、CPLUS_INCLUDE_PATH
、INCLUDE_PATH
) PKG_CONFIG_PATH
。pango の設定はうまくいきます。freetype を見つけて Makefile を生成します。作成しようとすると、次のエラーが発生します。
libtool は私の lib に問題があります (ただし libfreetype.la はディレクトリ/packages/freetype/2.1.10/amd64-linux//lib/
に存在し、アクセスの問題はありません)。そのため、libtool は「クラシックな場所」で見つけようとしますが、/usr/...
見つかりません。
最初は、libtool が 2 つのスラッシュで混乱するのではないかと思ったので (おそらく、freetype のコンパイル中に --prefix フラグでエラーが発生したため)、タイプミスなしで freetype を再コンパイルしましたが、何も変わりませんでした。
私を助けるアイデアはありますか?個人的なプロジェクトで libtool を使用したことがないので、この奇妙な動作を解決する方法があるかどうかわかりません... (関係ないかもしれませんが、libtool はバージョン 1.5.22 です)
前もって感謝します。
libtool - ファイルが正しいパスにある場合、dlopen が file not found で失敗する
パッケージのライブラリ ディレクトリにインストールされる libtool を使用してビルドされたライブラリがあります/usr/local/lib/myprog/libmylib.so
。libltdl を使用してコードにライブラリを動的にロードしています。このライブラリを 1 台のマシンにロードしようとすると、問題なく動作します。別の例では、同じビルドとライブラリが同じ場所にインストールされていると、「ファイルが見つかりません」というエラーが発生します。
lt_dlforeachfile
(ライブラリをロードするために使用する)直前に呼び出すとlt_dlopenext
、必要なライブラリが検索パスで見つかったことをファイル名を出力することで確認できます。しかし、その直後に、「ファイルが見つかりません」というエラーでロードに失敗します。助言がありますか?
アップデート
dlopen
ライブラリへの絶対パスを使用して明示的に指定するように切り替えてみました。これは、一部のシステムでは機能し、他のシステムでは機能しません。
c++ - libresolv に対してリンクするときの未定義の参照
libresolv にリンクするライブラリであるプロジェクトがあります。最近のディストリビューションでは問題なく動作します: Ubuntu 10.x Fedora 13、Mandriva 2010.1 ですが、Centos 5.x では次のエラーが発生します。
インストールされている glibc は次のとおりです: glibc-2.5-18.el5_1.1
library.la ファイルには以下が含まれます。
configure.ac を読むことができます
前もって感謝します
autotools - パッケージがCのみでビルドされている場合、Fortran、C ++などをプローブしないようにautoconfに指示するにはどうすればよいですか?
これは何年もの間私を悩ませてきましたが、他のみんながそうしていると思うように、私はそれを無視してきました。
上記のconfigure.acファイルを使用すると、configureはCコンパイラを検索しますが、続行します。
これは実際には何も害はありません。視覚的なノイズが追加され、実行に少し時間がかかります。これも重要ではありませんが、何年もの間私を悩ませてきました。
--with-tags = C、AC_LANG([C])、およびシェル変数を使用した他のいくつかのトリック(間違いなく間違った方法のように感じます...)を使用して、これをオフにできるかどうかを確認しました。
誰かがautoconf/automake / libtoolに恵まれたC専用のconfigureプロービングを取得する方法を知っていますか?
shared-libraries - GNU libtool で静的ライブラリと共有ライブラリの両方を作成しますか?
プロジェクトに GNU autotools (automake を含む!) を使用しています。libtool を使用して静的ライブラリと共有ライブラリを作成できるかどうかを知りたいですか? それとも、宣言は別々になりますか?これは:
仕事?
autotools - libtool/autotools プロジェクトで共有ライブラリ出力と実行可能出力を切り替える方法は?
autotools で管理されているプロジェクトがいくつかあります。ソース コード ファイルとは別に、autogen.sh、configure.ac、Makefile.am、src/Makefile.am があります。
これらのファイルがライブラリまたはアプリケーションであるかどうかを調べるにはどうすればよいですか? たとえば、Qtには、これを決定する「TEMPLATE = app」または「TEMPLATE = lib」があります。autotools とは何ですか?
実行可能アプリケーションの生成からライブラリの生成に切り替えて元に戻す方法は?