1

この質問に対する emsr の回答: Makefile.am で C++0x が必要であることを指定するにはどうすればよいですか? 私が抱えている問題の解決策です。いいえ、新しいものがあります:

マクロ定義を m4/check.m4 に入れ、それに応じて configure.ac を変更します。

AC_INIT([CppSs], [0.1], [brinkmann@hlrs.de])
m4_include([m4/check.m4])
LT_INIT

AC_CONFIG_SRCDIR([src/main.cc])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile src/Makefile])
AC_CONFIG_MACRO_DIR([m4])

# Checks for programs.
AC_PROG_CXX
AC_PROG_CC

# ...

# Check for C++0x features
AC_COMPILE_STDCXX_OX
AC_HEADER_STDCXX_11

AC_OUTPUT

実行するautoreconf -vと、これらのメッセージが表示されます(-fivも試しました):

configure.ac:43: warning: AC_COMPILE_STDCXX_11 is m4_require'd but not m4_defun'd 
../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from... 
../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from... 
../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from... m4/cppss.
m4:90: AC_HEADER_STDCXX_11 is expanded from...

./構成利回り:

...
./configure: line 16234: AC_COMPILE_STDCXX_OX: command not found
./configure: line 16235: AC_COMPILE_STDCXX_11: command not found
...

私は何が欠けていますか?

ありがとう、ステフェン

4

1 に答える 1

1

私はそれを自分で解決しました...それは、いくつかのタイプミス(0の代わりに、Oおよび同様に)と、configure.ac. acinclude.m4また、マクロが数個しかない場合は、同じディレクトリで呼び出されるファイルにそれらを配置して、それらconfigure.acを取り除く方が簡単であることがわかりました

m4_include([m4/check.m4])

そして、(少なくともgccには)コンパイラオプションがないため、libstdc++マニュアルのページ下部のc++ 11機能がチェックされている部分にエラーがあります-std=c++11。である必要があります-std=c++0x

乾杯、ステフェン

于 2012-05-04T12:43:28.527 に答える