Как добавить каталоги в путь поиска ld для кросс-компиляции в ARM?

Я пытаюсь настроить util-linux для кросс-компиляции, используя arm-none-linux-gnueabi из CodeSourcery. Моя единственная проблема до сих пор в том, что она не может найти мою библиотеку ncurses, которую я скомпилировал.

Как добавить каталог в путь поиска ld? Я попытался добавить к своим переменным LIBRARY_PATH и LD_LIBRARY_PATH, но ни один из них ничего не делает. Я знаю, что могу добавить флаг -L к gcc, и он добавит путь компоновщика, но есть ли способ сделать это глобально, чтобы я мог сделать это один раз, и мне больше не придется беспокоиться об этом снова?

Вот вывод arm-none-linux-gnueabi-gcc -print-search-dirs | grep libraries | sed 's/:/\n/g':

libraries
 =/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../lib/gcc/
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/lib/
/tools/bin/../arm-none-linux-gnueabi/libc/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../arm-none-linux-gnueabi/libc/lib/
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/arm-none-linux-gnueabi/4.6.1/
/tools/bin/../arm-none-linux-gnueabi/libc/usr/lib/

Я хотел бы добавить /arm/usr/lib а также /arm/usr/local/lib на мой путь поиска ld.

Если вам нужен вывод из любых других команд, просто спросите!

РЕДАКТИРОВАТЬ: Я только что узнал о переменной среды CFLAGS - все ли скрипты /make-файлы конфигурирования соблюдают это?

Спасибо!

1 ответ

Решение

Если скомпилированная библиотека ncurses будет связана с двоичным файлом ARM, который вы кросс-компилируете, вы не можете использовать LD_LIBRARY_PATH! LD_LIBRARY_PATH используется только текущей средой выполнения и никоим образом не используется компилятором или компоновщиком при сборке приложения.

Использование CFLAGS зависит от создателя Makefile. CFLAGS не используются автоматически, даже если они определены как переменная среды. Только такие инструменты, как инструменты autoconf, могут извлекать их из окружающей среды и использовать их автоматически. В Makefiles найти что-то вроде:

$(CC) $(CFLAGS) ....


если этот фрагмент существует, то Makefile использует переменную CFLAGS. LDFLAGS - более подходящая переменная среды для использования во время компоновки.

Другие вопросы по тегам