реклама на сайте
подробности

 
 
> GNU linker & thumb interwork libc path.
Sashiku
сообщение Jul 24 2008, 11:04
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 24-07-08
Пользователь №: 39 177



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

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
amw
сообщение Jul 24 2008, 16:50
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



Цитата(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


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 12th August 2025 - 02:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01807 секунд с 7
ELECTRONIX ©2004-2016