Autoconf - チェック用のコンパイラフラグの設定

Autoconf - チェック用のコンパイラフラグの設定

autoconfスクリプトを作成するために使用しようとしていますconfigure。ただし、チェックしたいヘッダーの一部には、追加のコンパイラフラグが必要です(例c++11:)。回答で部分的に解決できます。ここファイル内の関連する行は次のようになりますconfigure.ac

AX_CXX_COMPILE_STDCXX_11(,[mandatory])
AC_CHECK_HEADER("CL/cl2.hpp")

しかし、std=gnu++11フラグは前処理ステップに渡されないAC_CHECK_HEADERSため、フラグは使用可能であるのに存在しないという奇妙な結果になってしまいます。

checking CL/cl2.hpp usability... yes
checking CL/cl2.hpp presence... no

を見ると、config.log次の行が表示されます。

configure:3423: checking CL/cl2.hpp presence
configure:3423: g++ -E conftest.cpp
In file included from conftest.cpp:19:0
/usr/include/CL/cl2.hpp:442:2: error #error Visual studio 2013 or another C++11-supported compiler required

C++ フラグが使用されていないことがはっきりとわかります。これらのプリプロセッサ ステップでコンパイラ フラグを使用するにはどうすればよいでしょうか?

編集

CXXCPP実行時に手動で設定することでこれを回避できますconfigureが、エンド ユーザーに知らせずに実行したいと思います。

./configure CXXCPP="g++ -E -std=gnu++11"

答え1

私が現在考え出した解決策は、手動で追加することです:

CXXCPP="g++ -E -std=gnu++11"

ファイルに直接送信してくださいconfigure.ac。追加の回答があれば喜んでお聞きします。

答え2

次のように configure を実行する必要がありました:

./configure CCFLAGS="-std=c++11" CXXFLAGS="-std=c++11" CXXCPP="-std=c++11"

関連情報