21
我使用AX_CXX_COMPILE_STDCXX_0X
(可以查看autoconf-archive)來檢查編譯器的C++ 11功能。它正確地確定需要-std=c++0x
,但不會將其添加到CXXFLAGS
。我看了一下宏源,它實際上檢查,但是然後恢復以前的標誌。Autotools檢查C++ 11
我應該怎麼做才能將CXXFLAGS
設置爲能夠編譯C++ 11的源代碼?
只需將-std=c++0x
添加到AM_CXXFLAGS
不是很好的解決方案,因爲我想把編譯器編譯爲C++ 11模式的負擔讓autoconf開發人員,而不是我。
'configure.ac:15:錯誤:AC_LANG_ASSERT:當前語言不是C++:C ../../lib/autoconf/lang.m4:156:AC_LANG_ASSERT從... M4/ax_cxx_compile_stdcxx_11擴大。 m4:48:AX_CXX_COMPILE_STDCXX_11從... configure.ac:15:最高級別 autom4te:/ usr/bin/m4失敗,退出狀態:1 aclocal:錯誤:/ usr/bin/autom4te失敗,退出狀態:1 autoreconf:aclocal失敗,退出狀態:1' 我把它放在'AC_PROG_CXX'之後。我做錯了什麼? – KAction 2012-08-11 05:10:21
對不起,對於長評論。我找不到格式化它的方法。好吧,我在'AX_CXX_COMPILE_STDCXX_11'之前加了AC_LANG([C++]),但我認爲它是由'AC_PROG_CXX'調用的。 – KAction 2012-08-11 05:16:36
@illusionoflife'AC_PROG_CXX'不應該這樣做,因爲它會搞亂配置同時具有C和C++檢查的腳本。大多數autoconf檢查依賴於C.添加AC_LANG是正確的。 – hvd 2012-08-11 08:53:01