問題タブ [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.
gcc - autotoolsを使用しているときにPACKAGE_NAMEと他のマクロが競合している
config.h
ライブラリとそのライブラリ上に構築されたソフトウェアの両方にautotools(ファイルを含む)を使用すると、コンパイラは一部のマクロ(PACKAGE_NAME、PACKAGE_TARNAMEなど)の再定義について文句を言います。
どうすればこれを防ぐことができますか?
このconfig.h
ファイルは、その設定をそれを使用するソフトウェアに伝達するためにライブラリに必要です。
library_config.h
現在、オリジナルを含み、config.h
ユーザーがautotoolsを使用していないときにデフォルトを提供するラッパースクリプトがありますが、そのパッケージ内のマクロの定義を解除しても、gccから再定義の警告が表示されます。
最善のオプションは、そのマクロのないライブラリを用意することだと思います。autotoolsを使用するときに、ライブラリでPACKAGE、PACKAGE_NAMEなどの定義を回避するにはどうすればよいですか。
編集:よりよく説明しようとします。
ライブラリのでAC_CONFIG_HEADER
マクロを使用するとき、私は多くの有用な定義を含むファイルを作成します。この定義は、ライブラリ自体(コンパイルされた部分とそのヘッダーファイルの両方)およびクライアントソフトウェアに役立ちます。ただし、必要な便利なマクロと、autotoolsがクライアントソフトウェア構成にも使用されるときに衝突する固定名(PACKAGE、PACKAGE_NAME)を持つ他の汎用定義が混在しているのは残念です。configure.ac
config.h
AC_CONFIG_HEADER
php - ./configure(php)の場合、-disable-[name]と--without-[name]の違いは何ですか?
fileinfo、ereg、parchを使用してphpをコンパイルすることは避けたいです。--disableと--withoutのconfigureの違いは何ですか?
makefile - autotools の EXTRA_SCRIPTS 変数に関するドキュメントはどこにありますか?
Makefile.am の EXTRA_SCRIPTS 変数は何ですか? それはどこに文書化されていますか?
c++ - Boost MPIのAutoconfマクロ?
configure.ac
BoostMPIをチェックするautoconfマクロを検索しています。
インターネット上でそれらのいくつかを見つけるのは難しいことではありませんが、私が試したもののどれも期待どおりに機能しませんでした。
何をax_boost_mpi.m4
使いますか?
編集:私は私の要件をよりよく説明します。HAVE_BOOST_MPI
コンパイラとリンカのフラグをどこかに格納し、コンパイラを通常のc++コンパイラから使用可能なmpiCCまたはmpic++に切り替えるために、Boost MPIが使用可能かどうか(を定義)を通知するマクロが必要です。
Boost MPIが見つからない場合は、エラーで構成プロセスを停止するか、HAVE_BOOST_MPIを定義せずにg++を引き続き使用するかを選択できるようにしたいと思います。
プラスとして、いくつかのチェックを実行できるようにMPIRUN変数を定義する必要があります。
autoconf - autoconf で「make clean」を実行するときに、クリーニングする追加のファイルを指定します
autoconf を使用しています。現在、中間の .cpp ファイルが生成されています。「クリーンにする」ときに .cpp ファイルを削除したい。
CONFIG_CLEAN_FILES
変数でファイルを指定しようとしましたが、それはmake distlclean
. 実行時にファイルを削除するように設定する変数はありますmake clean
か? そうでない場合、どうすればよいですか?
ありがとう
gcc - ./指定されたバージョンのg++で構成する
指定されたバージョンのg++でコンパイルするように「configure」ファイルに指示する方法は?
ありがとう。
gcc - cygwin gcc 4.3 での引数の順序は、glib-2.0 とリンクするときに重要です
cygwin を使用して、os x および Linux で動作するコードをコンパイルしようとしています。しかし、gcc への引数の順序が予期しない結果をもたらすことがわかりました。
たとえば、次の場合は失敗します。
しかし、次の作品:
誰かがこれがどのように機能するか説明できますか? また、autoconf を取得してプラットフォームに応じて引数の順序を変更するためのテクニックやコードはありますか?
エラー メッセージの最初の 2 行を次に示します。
ありがとう、
SetJmp (gcc 4.3.4)
g++ - Autoconf / Automake "configure.ac:2:オプション`-Wall'が認識されません "
私は新しいプロジェクトのためにautoconf/automakeから始めようとしています。はじめに、 「GNU Autotoolsの使用」を読んで、Hello-World-Tutorialを構築しようとしています。
96ページ(LaTeX-Presentationであるため実際のPage = 105)から必要なファイルconfigure.ac
でMakefile.am
ありsrc/Makefile.am
、ドキュメントに記載されているとおりに表示されます。
その後、私は試しました:
ええと、automakeは2行目が気に入らないようです:
したがって、私は実行しました:
automake --add-missing --copy --no-force
私がverbose-optionで繰り返したautoconfが実行されていることが簡単にわかります。そしてそれはこれを返すだけです:
なぜこれが機能しないのか誰かが考えていますか?私の印象では、私のファイルはどれも間違っていません...
LinuxおよびWindows用のC++コードのコンパイルに使用したいと思います(mingw32-g ++を使用)。どこから始めればいいのか、何に注意を払わなければならないのか、知っていますか?
私はUbuntu9.1064ビットを使用しています。
どんな助けでも大歓迎です。よろしくお願いします
macos - 指定されたOSSDKにリンクしているOSXでautoconfを実行する方法
私はいくつかのGPLコードを含む小さなコマンドラインツールを書きました。すべてがぎこちなく実行されます。os10.6を使用します。
使用される外部コードには、autoconfを呼び出して作成されたconfig.hヘッダーファイルがあります。ツールをさまざまなOSバージョンに展開したいと思います。したがって、config.hは次のようになります。
config.hの生成中に/Developer/SDKs/MacOSX10.XXXX.sdk/usr/を使用するようにautoconfに指示する方法は何ですか?
それをテストするために私は実行しました
OS10.6で./configureを呼び出す前。configureスクリプトがlibintl.hを検索することは知っています。これは、「すぐに使用できる10.6 / SDK」には含まれていませんが、ローカルマシンの/ usr/localにあります。上記の方法で作成されたconfig.hヘッダーファイルには次のようなものがあります。 libintl.hがシステムにあるという情報-したがって、SDKにのみautoconfを「リンク」することは失敗しました。
「水晶玉がない」からなのか?:)。それとも、autoconfを実行する前の「setup」/flag-exportが正しくないのでしょうか。もしそうなら、envvariablesを設定する正しい方法は何でしょうか?
よろしくお願いします。
編集。のように見えます
トリックをしました:)とにかくありがとう。
autotools - AC_CHECK_LIBは、型にはまらない名前のライブラリに使用できますか?
AC_CHECK_LIBは、チェックする共有ライブラリのベース名を引数として受け入れます。したがって、「libxyz.so」という名前のライブラリの場合、AC_CHECK_LIBの引数としてライブラリ「xyz」のベース名を指定します。xyz.soという名前のライブラリがある場合(注:libxyz.soではありません)、autoconfを使用してこのライブラリの可用性/ユーザビリティを確認するにはどうすればよいですか?