Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GNU linker & thumb interwork libc path.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Sashiku
Здравтсвуйте!
Помогите плиззз...
Есть необходимость слинковать с помощью arm-elf-ld несколько библиотек и объектников, которые были откомпелированы в разных режимах работы ядра thumb и arm. Естественно, мне необходимы libgcc и libc, которые поддерживают interwork. И всё замечательно собирается, когда я прописываю абсолютные пути, до папок в которых лежат необходимы библиотечки с поддержкой interwork. Но как красиво отвязаться от абсолютных путей и привязаться к относительным системным, а именно к папке yagarto в моих Program Files виндовых, т.к. именно до нее имеется путь в системной переменной path? При этом не хочется заводить новую системную переменную, типа YAGARTO_PATH=C:\Program Files\yagartoo... В финале, хочется, чтобы после установки всего yagarto toolchain-а в любое место на машине (не обязательно в Program Files) человек смог собрать мой проект без каких либо добавлений системных переменных или изменений в makefile...

Спасибо!
amw
Цитата(Sashiku @ Jul 24 2008, 14:04) *
Здравтсвуйте!
Помогите плиззз...
Есть необходимость слинковать с помощью arm-elf-ld несколько библиотек и объектников, которые были откомпелированы в разных режимах работы ядра thumb и arm. Естественно, мне необходимы libgcc и libc, которые поддерживают interwork. И всё замечательно собирается, когда я прописываю абсолютные пути, до папок в которых лежат необходимы библиотечки с поддержкой interwork. Но как красиво отвязаться от абсолютных путей и привязаться к относительным системным, а именно к папке yagarto в моих Program Files виндовых, т.к. именно до нее имеется путь в системной переменной path? При этом не хочется заводить новую системную переменную, типа YAGARTO_PATH=C:\Program Files\yagartoo... В финале, хочется, чтобы после установки всего yagarto toolchain-а в любое место на машине (не обязательно в Program Files) человек смог собрать мой проект без каких либо добавлений системных переменных или изменений в makefile...

Спасибо!

Если ничего не путаю, то при компиляции линкера устанавливается режим линковки поумолчанию. В связи с чем линрек при линковке знает о размещении бибилиотек поумолчанию. Про размещение бибилиотек других режимов он знать не обязян. И чтобы слинковать для другого режима - интерворк например - нужно указать пути к бибилиотекам для режимов отличных от поумолчанию.
Кроме того, если gcc скомпилен с поддержкой multilib то при линковке gcc по идее подсунет для линкера все пути. то есть для линковки используйте команду типа
Код
arm-elf-gcc -o prg.elf main.o file_thumb.o

а не
Код
arm-elf-ld -o prg.elf main.o file_thumb.o
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.