Я пытаюсь скомпилировать SDK с встроенным gcc-компилятором arm в cygwin. Это SDK на основе файлов. Моя цель - это устройство mort cortex. Моя проблема заключается в том, что у SDK есть пользовательская реализация libc для цели, и когда я компилирую компилятор (arm-none-eabi-gcc), он хочет забрать gnu arm libc, а не SDK libc. Это приводит к ошибке компиляции. Я уверен, что make-файлы верны (я копировал и вставлял весь SDK с компьютера, где он работал). У меня больше нет доступа к этому компьютеру, чтобы проверить и сравнить настройки. Я не знаю, как предотвратить компилятор arm gcc от поиска собственной реализации libc и вместо этого указать на правильную реализацию. Любая помощь приветствуется.arm gcc по умолчанию компиляция его libc
0
A
ответ
0
Есть возможно два решения:
- Создание среды, специфичную для вашего инструмента - Набор инструментов GNU использует ряд переменных окружения для определения поведения по умолчанию. Для пользовательской инструментальной цепочки вам нужно будет установить все необходимые переменные, чтобы переопределить системные значения по умолчанию.
Используйте опцию
-nostdlib
компоновщика и явно связать нужную библиотеку и C времени выполнения стартовый код, поэтому командная строка линкер может включать в себя следующее:-nostdlib -L/USR/myarmtools/ССАГПЗ/Библиотека - ЖХ crt0.o
Обратите внимание, что -nostdlib
подавляет связывание по умолчанию Libc libstdC++ и crt0.o, так что вы должны обеспечить путь поиска (-L) в библиотеках, или явно связать их по полному пути и файла имя и связать код объекта времени выполнения C для вашей цели.
Я использую вариант 2 для предпочтения, поскольку он будет работать в любой среде. Однако, если вы хотите использовать общие make-файлы для создания нескольких целей, вариант 1 может оказаться полезным.
Смежные вопросы
- 1. Компиляция ARM и GCC
- 2. Компиляция с непервичными libc, (i.e eglibc, uClibc)
- 3. Компиляция без libc
- 4. Компиляция базового файла C для процессора ARM
- 5. Перекрестное компиляция GCC с newlib для ARM: как указать параметры GCC, такие как -march?
- 6. Как предотвратить передачу GCC флаги по умолчанию?
- 7. Параметры по умолчанию GCC
- 8. Компиляция GCC с кодом Sourcery
- 9. Кросс-компиляция Valgrind для ARM
- 10. Кросс-компиляция с помощью gcc-arm-Terry Guo-no-eabi
- 11. Компиляция с использованием arm-none-eabi-gcc libc.a error
- 12. arm-eabi-gcc - cygwin
- 13. Компиляция QEMU для ARM
- 14. Компиляция JInput на ARM
- 15. Ссылка по умолчанию GCC -l
- 16. Перекрестная компиляция модуля ядра ARM
- 17. Кросс-компиляция gcc
- 18. ARM GCC unaligned access
- 19. ARM gcc «пустое объявление»
- 20. ARM GCC встроенный ассемблер
- 21. Stacktrace arm-linux-gcc
- 22. Кросс-компиляция для ARM-embedded
- 23. Ошибка при создании arm-elf-gcc
- 24. Как вы по умолчанию выбираете gcc?
- 25. vim кросс-компиляция для ARM
- 26. Компиляция кода sparc для x86 и arm
- 27. Кросс-компиляция R для ARM (Raspberry Pi)
- 28. Кросс-компиляция приложений ocaml для ARM
- 29. Компиляция класса с GCC
- 30. кросс-компиляция x264 для ARM
Возможно, ваш SDK имеет где-то скрипт, который устанавливает всю переменную среды, которая будет использоваться с кросс-компилятором gcc. Что-то, что вам нужно запустить, используя «среду настройки источника». Это установит параметры toolchain, sysroot и т. Д. ... – LPs