問題タブ [automake]
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 - libtool は「make distclean」によって削除されました
libtool をプログラムのソース ツリーにコピーして、プログラムと共に配布しました。しかし、「make distclean」を実行すると、libtool は生成された残りのファイルとともに削除されます。どうすればそれが起こらないようにできますか?
Makefile.amを入れてみEXTRA_DIST = libtool
ましたが、うまくいきません。
基本的に、configure.ac は次のようになります。
automated-tests - autotoolsプロジェクトに追加のmake/testターゲットを追加する
ユニットテストと統合テストが混在するautotoolsプロジェクトがあり、それらはすべて「makecheck」を介して実行されます。一部の統合テストには時間がかかり、あらゆる種類の依存関係(データベースなど)があるため、これは理想的ではありません。
統合テストを分離して、独自のmakeターゲットを割り当てたいと思います。そうすれば、単体テストを(make checkを介して)頻繁に実行でき、統合テストも同様の方法で必要に応じて実行できます。
追加のmakeターゲットを追加する簡単な(またはその他の)方法はありますか?
注:これは大規模なプロジェクトであるため、すべてのmakefileを手動で編集/保守することは望ましくありません。可能であれば「autotoolsの方法」でやりたいと思います。
-更新1--
私はジョンの解決策を試みました、そしてそれは一歩近づいていますが、完全にはそこにありません。私はまだいくつかの問題を抱えています:
1)再帰-ビルドツリーのルートにあるmakefile.amと、テストを含むディレクトリを変更しても問題ありませんが、これを行う方法があるはずです。階層内のすべてのMakefile.amを変更します。(結局のところ、チェックターゲットはこのように機能します)
2).PHONY-.PHONYが再定義されているというメッセージが表示され続けます。別のパッケージ(具体的にはdoxygen)によって設定されているため、これは理解できます。2つを一緒にうまくプレイするにはどうすればよいですか?
php - Cで書かれたPHP拡張機能のリンク
編集:私の質問の改訂
Cで外部PHPモジュールを構築する場合、共有オブジェクトをリンクするにはどうすればよいですか?
autotools - Makefile.am からビルド済みの Makefile を実行するにはどうすればよいですか?
Makefile.am からビルド済みの Makefile を実行するにはどうすればよいですか?
automake/autoconf ビルド システムは初めてです。私が autotools を実装しているパッケージには、それぞれにいくつかのライブラリとテスト実行可能ファイルがあります。一部のライブラリは自動生成された ASN1C コードで、ビルド済みの makefile が付属しています。Makefile.am 内で「ビルド済みの makefile を使用して ASN1C ライブラリをビルドする」と言う最善の方法がわかりません。
このようなものでグーグルを検索しようとするのは、メイクファイルのドキュメントが豊富にあるため、少し難しいです.
ありがとう、チェンツ
autotools - C/C++ プロジェクトでライブラリの依存関係を自動検出する最良の方法は何ですか?
C/C++ プロジェクトでライブラリの依存関係を自動検出する最良の方法は何ですか?
マシンにすべての依存関係があるプロジェクトがあります。ビルドして実行します。今、私は autotools ビルドシステムをまとめたいと思っています。使用されるヘッダー ファイルやリンクに必要なライブラリなど、必要なすべての依存関係を自動検出する良い方法を探しています。
ライブラリビットは、私が理解するのが最も難しいようです。リストなどのすべての関数に対して AC_CHECK_LIB コマンドを生成できるようにしたいと思います。おそらく Perl でこれを行うことができますが、既に他の場所に存在することを想像する必要があります。
私が知っているのは、objdump と nm でシンボルを表示できること、関数が属するライブラリをこれらのユーティリティで見つけることができること、そして configure.ac に手動で AC_CHECK_LIB コマンドを入力してチェックできることです。この時点で、自動化は素晴らしいものになるでしょう。
ありがとう、チェンツ
c - 小さなansiCアプリの配布にautomake/autoconfを使用する必要がありますか?
テスト済みのさまざまなコンパイラとプラットフォームでクリーンにコンパイルできる小さなANSICアプリケーションがあります。プリプロセッサスイッチや外部依存関係は使用せず、makefileは次のようなものです。
このプロジェクトを可能な限り移植可能なソース形式で配布したい場合、automake / autoconfを使用してラップする必要がありますか?これは実際に携帯性を向上させるのでしょうか、それともそのままポータブルになるのでしょうか?
私が考えることができる唯一のことは、それがシステムコンパイラを自動的に選択するということですが、それはまた多くの複雑さを追加します。その価値はありますか?
c - automakeでライブラリの順序をどのように設定しますか?
automakeでライブラリの順序をどのように設定しますか?
私のamファイルには次のようなものがあります。
さて、コンパイルすると、このコンパイル行も同様になります。
問題は、libmine.aがlibadhoc.aに依存しているため、コンパイル行は次のようになることです。
automakeでライブラリの順序をどのように設定しますか?(または、回避策かもしれません。コンパイル行ですべてのライブラリをどのように繰り返しますか。これは、カスタムMakefileで行うことです。)
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にあります
c++ - automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?
automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?
automake または libtool オブジェクトには常に次のようなコンパイル コマンドがあるようです。
問題は、同じ名前のヘッダー ファイルが 2 つあることです....
各ヘッダーには Header という名前のクラスがありますが、それぞれが異なる名前空間にあります。したがって、./proj/thisdir でビルドするときは、「-I.」含まれてしまい、./proj/otherdir のヘッダーにアクセスできません
その最初の「-I」を取り除く方法がわかりません。それが現れます。
ヒントはありますか?
ありがとうチェンツ
autotools - autoconf/automakeにGLibヘッダーを移植可能に含める
移植性のためにautoconfベースのシステムで構築されたプロジェクトのGLibヘッダーを含める必要があります。
ポータブルな方法でGLibヘッダーを安全にインポートするにはどうすればよいですか?私はpkg-configについて知っていますが、それは完全に移植可能ではありません(一部のシステムにはそれがなく、構成のためにautoconfのみに依存したいので)。