Связь с GCC не обнаруживает -FIC флаг

Рассмотрим f&&!--f. Здесь оба условия f и !--f должны иметь значение True, чтобы было выполнено действие по умолчанию (печать строки). && - это логическое AND.

Выражение в awk истинно, если оно оценивается чем-то отличным от 0. Итак, первое условие истинно, если f не 0.

!--f означает уменьшение f на 1 немедленно (f-- также уменьшается на единицу, но только немного позже, подробности см. в этой документации). И ! отрицает истинностное значение предыдущего утверждения. Так, если f равно 1, то --f становится 0, то есть Ложь. ! делает его Истинным. Предполагается, что это позволит уловить обстоятельство, когда f не равно 1.

В этом простом примере второй тест не является строго необходимым, но он гарантирует, что f будет сброшен в 0. Более короткая версия была бы такой:

awk 'f&&!--f;length($1)>8{f=1}' awk.write

И, возможно, более легкая для понимания:

awk 'f&&{print;f=0};length($1)>8{f=1}' awk.write

0
13.11.2018, 02:46
1 ответ

В вашем boot.oесть эльфийская секция .multiboot, которая несовместима с -fPIC. Вы можете попытаться скомпилировать boot.oс -fPIC, но это не удастся.

См. заголовок https://www.gnu.org/software/grub/manual/multiboot/multiboot.html#OS-image-format.

С другой стороны, нет смысла создавать загрузочный объект с -fPIC. Даже если бы был «динамический загрузчик», не было бы ничего, с чем можно было бы динамически связываться во время процесса загрузки.

0
28.01.2020, 04:09

Теги

Похожие вопросы