LINUX.ORG.RU

История изменений

Исправление 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<что-то там>, то в получающейся библиотеке указанных выше символов не обнаруживается. И в этом случае указанные в моем первом посте проблемы не проявляются. Поскольку в данном случае я не понимаю всего механизма происходящего, я не уверен до конца, что проблема окончательно устранена. И был бы благодарен объяснению. Но как минимум текущее решение работает.