【发布时间】:2014-03-17 09:53:34
【问题描述】:
根据操作系统,我在 configure.ac 中定义了一个特殊的 LDFLAGS:
AC_CANONICAL_HOST
if test "$host_os" = cygwin
then
LDFLAGS="$LDFLAGS -Wl,-no-undefined"
export LDFLAGS
fi
AC_SUBST([LDFLAGS])
该包使用AC_PROG_LIBTOOL,当LDFLAGS 传递给libtool 时,-Wl 前缀仍然存在,并且链接器不理解该选项。如果我删除此前缀,AC_PROG_CXX 宏将失败,因为 GCC 会自行阻塞-no-undefined。我做错了什么?
LDFLAGS 没有提到 Makefile.am,但我通过运行 make -n 确保它在 libtool 命令中得到尊重。
我在 Cygwin 1.7.28(0.271/5/3) 下使用 autoconf 2.69、automake 1.14、gmake 4.0 和 gcc 4.8.2
编辑:我有几十个Makefile.ams,其中一半以上来自外部库——我更喜欢从中心位置控制这些标志。
【问题讨论】:
-
应该是
-Wl,--no-undefined(注2-s)而不是-Wl,-no-undefined。