Я пытаюсь скомпилировать следующий простой код
#include <stdio.h>
#include <stdlib.h>
int main() {
int i;
for (i = 0; i < 100; i++) {
printf("Hello World %d!\n", i);
}
do {
i++;
} while (1);
}
на плату nRF52840Dk с процессором Arm Cortex-M4. Мой хост-компьютер - Macbook Pro 15 '' с ОС MacOS Mojave 10.14.5. Я надеюсь запустить программу «голое железо» (без какой-либо ОС) для запуска.
Когда я запускаю следующее:
clang --target=armv7-none-gnueabi foo.c
Я получаю foo.c:1:10: fatal error: 'stdio.h' file not found
.
Теперь я немного осмотрелся и обнаружил, что эта проблема может быть связана с другим расположением /usr/include
в более новых вариантах OSX.
Я пробовал следующие решения без дальнейшего развития:
xcode-select --install
Уже сделано. У меня установлены инструменты командной строки xcode.
Запустите
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
и продолжите установку
Я предполагаю, что это может быть возможной ошибкой. Когда я запускаю это, я сталкиваюсь с установщиком, соглашаюсь с лицензией, но затем я получаю это предупреждение Installing this package may damage your system, and the installation may fail. To stop the program and the installation, click “Cancel Installation”.
Когда я продолжаю, установка каждый раз завершается неудачей. Может ли это быть связано с тем, что Ma c запретил запуск 32-битных приложений? Как тогда люди кросс-компилируются на платы ARM на новых Mac?
Установите для переменной среды
CPATH
значение
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include
Попытка также предпринималась, но это приводит к взрыву предупреждений и ошибок. Хотя кажется, что stdio.h
найдено, но выдает следующую ошибку:
error: Unsupported architecture
#error Unsupported architecture
^
и ряд других ошибок.
Так что я не уверен, что делать дальше. Может ли кто-нибудь просветить меня об этом?