Будет g ++ создавать 64 бита в систему на 64 бита?

Так как другие методы на самом деле не обеспечивают a bash метод, относительно как попросили:

command | while IFS= read -r line; do
    (( i )) || { printf '%s\n' 'These are the files stuck in the queue:' ; (( i++ )) ; }
    printf '%s\n' "${line}"
done

Все используемые команды являются внутренними к bash.

Если не будет никаких строк вывода, то ничто не будет распечатано. Если будет, то строка заголовка будет распечатана, и затем вывод от command.

2
19.11.2012, 23:20
3 ответа

Я предполагаю, что тот двоичный выход совпадет с архитектурой, на которой Вы работаете...., если флаги для изменения этого поведения не присутствуют. Так, можно проверить это путем компиляции чего-то и затем выполнения команды файла на двоичном файле. Это скажет Вам, если вещами составят 64 или 32 бита.

3
27.01.2020, 22:07
  • 1
    Это может быть гарантировано на достаточно современной версии gcc с -march=native и -mtune=native флаги. Это на самом деле сделает исполняемый файл, это конкретно настраивается на точный ЦП, который Вы используете на машине, на которой Вы компилируете. –  Omnifarious 19.11.2012, 23:38

Да, если Вы не старались изо всех сил настраивать его по-другому, GCC скомпилирует для архитектуры Вашего процессора. (Универсальная архитектура, не Ваш определенный вариант ЦП — в Вашем случае amd64 иначе x86_64).

В типовых установках 64-разрядного GCC, передачи -m32 скомпилировать для соответствующей 32-разрядной архитектуры (например, x86 в amd64 системе). Выполненный gcc --print-multi-lib видеть, какая архитектура поддерживается.

0
27.01.2020, 22:07

Если конкретный проект не имеет никаких явных или неявных зависимостей от библиотек, которые составляют только 32 бита, то automake скомпилирует исполняемый файл на 64 бита.

С распространенностью систем на 64 бита и перереализациями вещей, которые раньше были 32 бита только, этого не произойдет в современной системе (который является сообщением 2010, включая Fedora 16),

0
27.01.2020, 22:07

Теги

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