
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"