2010-10-18 3 views
1

Я пытаюсь перекрестно скомпилировать busybox, но я получаю «неопределенную ссылку» на этапе компоновки. Используя nm, на самом деле символ отсутствовал в файле библиотеки (libbb.a в моем случае.). Заглядывая в источник ('busybox/libbb/xfuncs.c'), есть все эти #ifdef L_ <function_name>, обертывающие функции обсуждаемый. Кто-нибудь знает, что это за макросы? Я grep через источник и не могу найти, где они определены.Что такое макрос L_ * в busybox?

+0

какая версия busybox? Я проверил 1.10, 1.13 и 1.17 и не смог найти макросы L_, по крайней мере, в файле, о котором вы указали – shodanex

ответ

1

Эти макросы используются как часовые для локальных версий функции, если libc их не предоставляет. Во многих пакетах сценарии autoconf должны определять свое присутствие и соответственно устанавливать параметры в config.h, чтобы исходные файлы могли знать, что должно и не должно быть определено.

+0

Я вижу ... но некоторые из этих функций - это такие вещи, как bb_xstrdup и bb_strlen, которые, как я полагаю, являются busybox, поэтому libc не будет иметь эти функции? – Ken

Смежные вопросы