Я пытаюсь перекрестно скомпилировать busybox, но я получаю «неопределенную ссылку» на этапе компоновки. Используя nm
, на самом деле символ отсутствовал в файле библиотеки (libbb.a в моем случае.). Заглядывая в источник ('busybox/libbb/xfuncs.c'), есть все эти #ifdef L_
<function_name>, обертывающие функции обсуждаемый. Кто-нибудь знает, что это за макросы? Я grep через источник и не могу найти, где они определены.Что такое макрос L_ * в busybox?
1
A
ответ
1
Эти макросы используются как часовые для локальных версий функции, если libc их не предоставляет. Во многих пакетах сценарии autoconf должны определять свое присутствие и соответственно устанавливать параметры в config.h
, чтобы исходные файлы могли знать, что должно и не должно быть определено.
+0
Я вижу ... но некоторые из этих функций - это такие вещи, как bb_xstrdup и bb_strlen, которые, как я полагаю, являются busybox, поэтому libc не будет иметь эти функции? – Ken
какая версия busybox? Я проверил 1.10, 1.13 и 1.17 и не смог найти макросы L_, по крайней мере, в файле, о котором вы указали – shodanex