問題タブ [autoconf]
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 - AC_CACHE_CHECK はどのようにリセットする必要がありますか?
AC_CACHE_CHECK はどのようにリセットする必要がありますか?
autoconf でヘッダーをチェックしています。デフォルトのインクルード パスにない可能性のある std フォルダー内のヘッダー ファイルを見つけるのを少し難しくするためのロジックを追加しました。私がこれを行う方法は、最初に AC_CHECK_HEADER が組み込まれたヘッダー ファイルを見つけようとすることです。ヘッダーが見つからない場合は、CPPFLAGS を変更して再試行します。
これに関する問題は、autoconf のキャッシングです。チェックを強制する (またはキャッシュ チェックをバイパスする) 必要があります。強制しない場合、autoconf がヘッダーを見つけるかどうかに関係なく、最初のチェックで見つかったものを取得します。
ありがとう、チェンツ
autotools - autotoolsでは、dnl'edとは何ですか?
私はautoconfコードで、dnlされているものとされていないものについて多く見ています。dnl'edとは何ですか?
c - 小さなansiCアプリの配布にautomake/autoconfを使用する必要がありますか?
テスト済みのさまざまなコンパイラとプラットフォームでクリーンにコンパイルできる小さなANSICアプリケーションがあります。プリプロセッサスイッチや外部依存関係は使用せず、makefileは次のようなものです。
このプロジェクトを可能な限り移植可能なソース形式で配布したい場合、automake / autoconfを使用してラップする必要がありますか?これは実際に携帯性を向上させるのでしょうか、それともそのままポータブルになるのでしょうか?
私が考えることができる唯一のことは、それがシステムコンパイラを自動的に選択するということですが、それはまた多くの複雑さを追加します。その価値はありますか?
c - automakeでライブラリの順序をどのように設定しますか?
automakeでライブラリの順序をどのように設定しますか?
私のamファイルには次のようなものがあります。
さて、コンパイルすると、このコンパイル行も同様になります。
問題は、libmine.aがlibadhoc.aに依存しているため、コンパイル行は次のようになることです。
automakeでライブラリの順序をどのように設定しますか?(または、回避策かもしれません。コンパイル行ですべてのライブラリをどのように繰り返しますか。これは、カスタムMakefileで行うことです。)
c++ - automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?
automake が -I を追加しないようにするにはどうすればよいですか? 私のコンパイル行に?
automake または libtool オブジェクトには常に次のようなコンパイル コマンドがあるようです。
問題は、同じ名前のヘッダー ファイルが 2 つあることです....
各ヘッダーには Header という名前のクラスがありますが、それぞれが異なる名前空間にあります。したがって、./proj/thisdir でビルドするときは、「-I.」含まれてしまい、./proj/otherdir のヘッダーにアクセスできません
その最初の「-I」を取り除く方法がわかりません。それが現れます。
ヒントはありますか?
ありがとうチェンツ
pthreads - -pthreadを使用したautoconf
ご挨拶。使用するpthreadオプションを自動的にチェックし、理想的にはgccでコンパイルするときに-pthreadを指定するautoconf設定スクリプトを作成しようとしています。
AX_PTHREADが機能することを期待していましたが、MacOS10.6ではどちらも機能しないようです。
http://www.nongnu.org/autoconf-archive/ax_pthread.htmlのAX_PTHREADを使用しています
私にはわからない理由で、Macでビルドされたスクリプトに-pthreadオプションを使用していません。
問題は、「none」がエラーなしでコンパイルされているため、ax_pthread_flags変数の他のスレッドがチェックされていないことであると思われます。
そこで、-pthreadのケースを「none」のケースの前に移動し、このケースをcaseステートメントに追加しました。
これは機能するようですが、GCC以外のコンパイラで機能するかどうかはわかりません。そして、私は気にかけるべきかどうかさえわかりません。
同様に厄介なのは、AX_PTHREADマクロがCFLAGSのみを更新し、CPPFLAGSは更新しないという事実です。
autoconfを使用して-pthreadオプションをテストするためのより良い方法はありますか?
bash - スペースを含むシェル変数、単一のコマンド ライン オプションの引用符
Autoconf スクリプトは、スペースを含むファイル名またはパス名に問題があります。例えば、
結果 (config.log):
./configure からのコンパイル コマンドはac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'あり、これを変更することはできません (おそらく可能ですが、この方法で autoconf を回避することは一般的な解決策ではありません)。
スペースで分割するのではなく、単一のコマンドライン変数として解析するスペースを含むシェル変数を取得することになると思います。私が思い付くことができる最も簡単なシェルの例は、スペースを含むファイルを作成し、リストを試みることlsですls。
これは機能しますが、autoconf ではシェル コードを変更できないため、違法です。
次の引用の試みはどれも機能しません。
等々。
シェルスクリプトでこれを達成することは不可能ですか? スペースを含むシェル変数を単一のコマンドライン引数に展開する魔法の引用符はありますか?
autotools - autoconf/automakeにGLibヘッダーを移植可能に含める
移植性のためにautoconfベースのシステムで構築されたプロジェクトのGLibヘッダーを含める必要があります。
ポータブルな方法でGLibヘッダーを安全にインポートするにはどうすればよいですか?私はpkg-configについて知っていますが、それは完全に移植可能ではありません(一部のシステムにはそれがなく、構成のためにautoconfのみに依存したいので)。
autotools - Autoconf-config.hはどこに行きますか?
私は自分のニーズに合うように(autoconf、automake、libtoolを使用して)独自の単体テストライブラリを作成しています(非常に大量の機能は必要ありません。テストランナーとアサーションだけが必要です)。使えるようになりました。
もちろん、config.hを使用して、どのヘッダーを含めるかを判断します。問題は、config.hが他のプロジェクトのconfig.hと簡単に衝突する傾向があるため、どこに行くべきかわからないことと、アーキテクチャに依存していることです。
このヘッダーをインストールするための私の方法は何ですか?(他のすべてのヘッダーで必要です)
gnu - GNU Autotools:ルートソースディレクトリの上にある「makedist」tarballにソースファイルをどのように含めますか?
Gnu Autotools(つまり、automake、autoconf、libtool)を使用してサブフォルダー(「サブパッケージ」と呼ばれる)内のソースコードを管理するSubversionプロジェクトがあります。サブパッケージは、サブパッケージのルートソースディレクトリの上にあり、他のサブパッケージに共通のソースファイルを参照します。残念ながら、「make dist」を実行してディストリビューションtarballを作成すると、共通のソースファイルがディストリビューションに含まれなくなります。
autoconf / automakeを使用して、ソースを配布する前にこれらの共通ソースファイルをサブパッケージのサブディレクトリに移動し、再配置されたソースファイルを正しく指すようにmakefileを調整する方法はありますか?明らかに、コンパイル前にmakefileにこれらのソースファイルを移動させることは可能ですが、Subversionリポジトリ内で作業する場合、これらの移動されたファイルはリビジョン制御されており、元のファイルの代わりに移動されたファイルを誤って編集する可能性があるため、問題が発生します。