2016-02-12 2 views
0

Я пытаюсь скомпилировать 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

Возможно, ваш SDK имеет где-то скрипт, который устанавливает всю переменную среды, которая будет использоваться с кросс-компилятором gcc. Что-то, что вам нужно запустить, используя «среду настройки источника». Это установит параметры toolchain, sysroot и т. Д. ... – LPs

ответ

0

Есть возможно два решения:

  1. Создание среды, специфичную для вашего инструмента - Набор инструментов GNU использует ряд переменных окружения для определения поведения по умолчанию. Для пользовательской инструментальной цепочки вам нужно будет установить все необходимые переменные, чтобы переопределить системные значения по умолчанию.
  2. Используйте опцию -nostdlib компоновщика и явно связать нужную библиотеку и C времени выполнения стартовый код, поэтому командная строка линкер может включать в себя следующее:

    -nostdlib -L/USR/myarmtools/ССАГПЗ/Библиотека - ЖХ crt0.o

Обратите внимание, что -nostdlib подавляет связывание по умолчанию Libc libstdC++ и crt0.o, так что вы должны обеспечить путь поиска (-L) в библиотеках, или явно связать их по полному пути и файла имя и связать код объекта времени выполнения C для вашей цели.

Я использую вариант 2 для предпочтения, поскольку он будет работать в любой среде. Однако, если вы хотите использовать общие make-файлы для создания нескольких целей, вариант 1 может оказаться полезным.

Смежные вопросы