在我的源目录中,我输入g++ -DHAVE_CONFIG_H -I. -I.. -std=gnu++11 -fpermissive -Wno-write-strings -O0 -g -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cc
mv -f .deps/main.Tpo .deps/main.Po
,它会发出命令:
-std=gnu++11 -fpermissive -Wno-write-strings -O0 -g
其中一些是由我(-g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo
)创建的,其中一些不是(-g -O2
)
Q1 :如何告诉autotools停止插入-MT main.o -MD -MP -MF .deps/main.Tpo
?
Q2 :与AM_CXXFLAGS
有什么关系?有必要吗?不必要?我可以摆脱它吗?如果是这样,怎么样?
Q3 :如何通过m4宏无添加地添加到m4/ax_debug.m4
?到目前为止我采用的方法是将宏AC_DEFUN([AX_DEBUG], [
AC_ARG_WITH([debug],
[AS_HELP_STRING([--with-debug], [Enable debug (default is no)])],
[with_debug=$withval],
[with_debug=no])
AM_CONDITIONAL([WITH_DEBUG], [test "x$with_debug" = "xyes"])
AS_IF([test "x$with_debug" = "xyes"], [
AC_SUBST([DEBUG_CXXFLAGS], ["-O0 -g"])
])
AC_MSG_NOTICE([checking if debugging required ... $with_debug])
])dnl AX_DEBUG
定义如下:
src/Makefile.am
并在AM_CXXFLAGS = ... $(DEBUG_CXXFLAGS)
中使用这些标记,如下所示:
DEBUG_CXXFLAGS
我有没有办法安排它以便自动添加configure.ac
?
更新(可能的答案):关于Q1,answer似乎是在AC_INIT(...)
之后将以下行添加到: ${CXXFLAGS=""}
:< / p>
$(DEBUG_CXXFLAGS)
并从src/Makefile.am
删除AC_SUBST([CXXFLAGS], ["$CXXFLAGS -O0 -g"])
。
关于Q2,我仍然不知道那是什么。
关于Q3,答案似乎是写
AC_SUBST([DEBUG_CXXFLAGS], ["-O0 -g"])
而不是
A
我不确定这是否是“官方”解决方案。