Как добавить опцию sys root в кросс-компиляцию? - PullRequest
0 голосов
/ 22 февраля 2020

Я следую sysdev учебнику, и у меня нет компилятора с флагом sys root. ../binutils-x.y.z/configure --target=$TARGET --prefix="$PREFIX" --with-sysroot (забыл последний).

Таким образом, проблема в том, что, когда я включил определенный заголовком компилятора <stdint.h> (где-то в источнике, это не важно для ошибки), возникает ошибка:

/home/user/opt/cross/lib/gcc/i686-elf/8.3.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory
 # include_next <stdint.h>

У меня есть Посмотрел на файл находку:

...
...
# include_next <stdint.h>
...

1) Так почему же используется макрос препроцессора #include_next, чем он отличается от базового c #include.

2) Как исправить ошибку конечно. Как подсказывает заголовок этого вопроса, я нашел этот вопрос: stdint.h Ошибка "нет такого файла или каталога" на yocto sdk . Там кто-то сказал, там отсутствует 3) sysroot, но я понятия не имею, что это (разрешение root?) И как добавить его в мою компиляцию (если даже) с каким-то флагом? Или нужно снова собрать кросс-компилятор (но лучше избегать этой опции). Или требуется специальная папка с заголовком, чтобы она была видна компилятору? На самом деле не знаю.

Редактировать: при попытке отредактировать файл и изменить #include_next на #include, возникает еще больше ошибок, так что скорее не делайте этого (изменили это обратно), поэтому этот макрос для меня еще более волшебный c, как я его впервые увидел

...