В зависимости от ОС я определяю специальный LDFLAGS
в моем файле configure.ac:
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
, но я убедился, что он соблюдается в команде libtool, запустив make -n
.
Я использую autoconf 2.69, automake 1.14, gmake 4.0 и gcc 4.8.2 под Cygwin 1.7.28(0.271/5/3)
Редактировать: у меня есть несколько десятков Makefile.am
, более половины из которых из внешних библиотек — я бы предпочел управлять этими флагами из центрального места.
-Wl,--no-undefined
(примечание 2-
s), а не-Wl,-no-undefined
. - person ldav1s   schedule 18.02.2014