Я установил Embedded Robot Coder, набор инструментов для разработки встроенных ARM-приложений, например, для кирпича Lego NXT, с использованием MATLAB в Windows. Он содержит Cygwin, утилиты GNUARM и так далее. Когда я пытаюсь скомпилировать мое приложение, генерация кода на C работает нормально, но при сборке возникает ошибка:
Compiling /cygdrive/C/MATLAB/2013/ecrobotnxt/environment/nxtOSEK/toppers_osek/kernel/alarm.c to alarm.o
C:/cygwin64/GNUARM/bin/arm-elf-gcc.exe: error while loading shared libraries: ?: cannot open shared object file: No such file or directory
Я открыл терминал Cygwin (но утилиты Cugwin также работают на Windows CMD) и запустил ldd
на arm-elf-gcc.exe. Вывод следующий:
$ ldd ./arm-elf-gcc.exe
ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7fff9c3e0000)
??? => ??? (0x778e0000)
wow64.dll => /cygdrive/c/WINDOWS/System32/wow64.dll (0x77800000)
wow64win.dll => /cygdrive/c/WINDOWS/System32/wow64win.dll (0x77860000)
Что делает ???
имею в виду? Я также использовал команду cygcheck
. На Windows CMD вывод выглядит следующим образом:
C:\cygwin64\GNUARM\bin>cygcheck arm-elf-gcc.exe
Found: arm-elf-gcc.exe
arm-elf-gcc.exe
... но в Cygwin Terminal cygcheck вернул ошибку:
cygcheck.exe arm-elf-gcc.exe
cygcheck: could not find 'arm-elf-gcc.exe'
Во время установки Cygwin я пропустил много вещей просто для экономии времени и места, но я проверил все необходимые пакеты для набора инструментов ECR.
ПРИМЕЧАНИЕ. Этот вопрос относится к конкретному набору инструментов Matlab и Lego, но я задаю его здесь, поскольку он использует общие механизмы Linux/Cygwin.