История изменений
Исправление zloy_starper, (текущая версия) :
Нет примера «плохого» использования AC_CHECK_LIB. Нет примера «правильного» использования.
Было, например, так:
AC_CHECK_LIB(X11, XCopyArea, , AC_MSG_RESULT([X11 lib not found]))
Теперь использую следующий вариант:
AC_CHECK_LIB(X11, XCopyArea, [xlib_LDFLAG=«-lX11»], AC_MSG_RESULT([X11 lib not found]))
Нет примера, какой мусор и в каком виде передавался линкеру.
В некорректном варианте при успешной проверке наличия библиотеки в переменную LDFLAGS добавлялось -lX11. И такие параметры передавались libtool при сборке библиотеки. В результате в библиотеки появлялось что-то такое:
0000000000062f10 B bss_end
0000000000062f10 B bss_end_
0000000000062ca8 B __bss_start
0000000000062ca8 B bss_start
Я не представляю, что это может значить, и как это и на что влияет. В данном случае я имею в виду именно механизм. Конечный результат я наблюдал. Если собирать библиотеку просто ручками без всяких бессмысленных -l<что-то там>, то в получающейся библиотеке указанных выше символов не обнаруживается. И в этом случае указанные в моем первом посте проблемы не проявляются. Поскольку в данном случае я не понимаю всего механизма происходящего, я не уверен до конца, что проблема окончательно устранена. И был бы благодарен объяснению. Но как минимум текущее решение работает.
Исходная версия zloy_starper, :
Нет примера «плохого» использования AC_CHECK_LIB. Нет примера «правильного» использования.
Было, например, так: AC_CHECK_LIB(X11, XCopyArea, , AC_MSG_RESULT([X11 lib not found]))
Теперь использую следующий вариант: AC_CHECK_LIB(X11, XCopyArea, [xlib_LDFLAG=«-lX11»], AC_MSG_RESULT([X11 lib not found]))
Нет примера, какой мусор и в каком виде передавался линкеру.
В некорректном варианте при успешной проверке наличия библиотеки в переменную LDFLAGS добавлялось -lX11. И такие параметры передавались libtool при сборке библиотеки. В результате в библиотеки появлялось что-то такое:
0000000000062f10 B bss_end 0000000000062f10 B bss_end_ 0000000000062ca8 B __bss_start 0000000000062ca8 B bss_start
Я не представляю, что это может значить, и как это и на что влияет. В данном случае я имею в виду именно механизм. Конечный результат я наблюдал. Если собирать библиотеку просто ручками без всяких бессмысленных -l<что-то там>, то в получающейся библиотеке указанных выше символов не обнаруживается. И в этом случае указанные в моем первом посте проблемы не проявляются. Поскольку в данном случае я не понимаю всего механизма происходящего, я не уверен до конца, что проблема окончательно устранена. И был бы благодарен объяснению. Но как минимум текущее решение работает.