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