21
私はAX_CXX_COMPILE_STDCXX_0X
(autoconf-archiveを見ることができます)を使用して、コンパイラのC++ 11機能をチェックします。 -std=c++0x
が必要であると正しく判断しますが、CXXFLAGS
には追加しません。私はマクロソースを見て、それは実際にチェックした後、以前のフラグを復元します。C++用の自動ツールチェック11
CXXFLAGS
をC++ 11ソースをコンパイルできるように設定するにはどうすればよいですか?
-std=c++0x
〜AM_CXXFLAGS
を追加するだけでいいのは、コンパイラをC++ 11モードでコンパイルする負担をautoconfの開発者ではなく私には負わせたいからです。
'configure.ac:15:エラー:AC_LANG_ASSERT:C ../../lib/autoconf/lang.m4:156:現在の言語はC++ではありませんAC_LANG_ASSERTは... M4/ax_cxx_compile_stdcxx_11から展開されます。configure.ac:15:トップレベル autom4te:/ usr/bin/m4が終了ステータスで失敗しました: aclocal:エラー:終了時に/ usr/bin/autom4teが失敗しました。ステータス:1 autoreconf:aclocalが終了ステータス1で失敗しました。 ' 'AC_PROG_CXX'の直後に置きます。私は間違っている? – KAction
長いコメントを残して申し訳ありません。私はそれをフォーマットする方法を見つけませんでした。さて、 'AX_CXX_COMPILE_STDCXX_11'の直前に' AC_LANG([C++]) 'を追加しましたが、' AC_PROG_CXX'によって呼び出されたと仮定しました。 – KAction
@illusionoflife 'AC_PROG_CXX'は、CとC++の両方のチェックを持つconfigureスクリプトを混乱させるので、そうしてはいけません。ほとんどのautoconfのチェックはCに依存しています。あなたがしているようにAC_LANGを追加するのは正しいことです。 – hvd