Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Несколько вопросов по GNU toolchains
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Pavel_I
Хочу для себя прояснить некоторые моменты:

- непонятно для чего имеется две копии бинарников с разными названиями (например mipsel-linux-gcc и просто gcc) и заголовочных файлов в разных дирректориях

- откуда gcc "знает" путь к стандартным заголовочным файлам?

- откуда ld "знает" путь к стандартной библиотеке?
cosmobot
это два разных gcc один собран для таргета совместимого с x86 (ну или выше)
второй для arm
(а может и тупо симлинк , в некоторых тулчайнах и такое можно увидеть )

предполагаю что со времени своей компиляции
MrYuran
Цитата(Pavel_I @ Oct 22 2008, 00:03) *
- откуда gcc "знает" путь к стандартным заголовочным файлам?
- откуда ld "знает" путь к стандартной библиотеке?

из опций командной строки или makefile
ukpyr
Цитата
- откуда gcc "знает" путь к стандартным заголовочным файлам?
- откуда ld "знает" путь к стандартной библиотеке?

думаю что эти пути прописаны в бинарниках относительно папки бинарников
Pavel_I
Цитата(cosmobot @ Oct 22 2008, 00:52) *
это два разных gcc один собран для таргета совместимого с x86 (ну или выше)
второй для arm

Это именно бинарники для таргета (не линки). Они имеют один размер но разные названия.


Цитата(MrYuran @ Oct 22 2008, 09:14) *
из опций командной строки или makefile

Файл можно скомпилировать и с линковать и без makefile или указания путей в коммандной строке.
И все будет в порядке. Я проверял.


Цитата(ukpyr @ Oct 22 2008, 09:31) *
думаю что эти пути прописаны в бинарниках относительно папки бинарников

Вот я тоже к этому склюняюсь.
Harbour
gcc это frontend, по умолчанию он вызывает компилятор для того target, что был собран, по желанию все это задается опциями "-V version -b machine". пути к стандартным либам/includes задаются на этапе сборки gcc и потом могут отдельно конфигурится при вызове. ld ничего не знает - его или вызывает сам gcc с необходимыми опциями или его вызваешь сам, задавая опции вручную.
msalov
Если нужно точно знать что и откуда берёт gcc, или если надо заменить пути линкер и пр., можно воспользоваться нехитрой последовательностью действий
Код
# Получаем
gcc -dumpspecs > ./specs
# Тут правим то что надо
vi ./specs
# Сохраняем
mv ./specs `dirname $(gcc -print-libgcc-file-name)`/specs
Pavel_I
В вопросе что-откуда берется появилась некоторая ясность. Всем спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.