Когда следует использовать опцию -m32 для gcc? - PullRequest
25 голосов
/ 11 марта 2010

Я пишу программу, которая, если я скомпилирую в 32-битной системе Suse 10 без добавления опции -m32 и выполню ее в 64-битной Suse 10, будет работать нормально.

В этом случае мне не нужно добавлять опцию -m32?

Можем ли мы выполнять программы, созданные на 32-битных системах, непосредственно на их 64-битных аналогах без каких-либо побочных эффектов? Или требуются какие-либо обновления или изменения?

Ответы [ 2 ]

28 голосов
/ 11 марта 2010

Нет проблем при запуске 32-битных исполняемых файлов в 64-битной ОС (если присутствуют и находятся 32-битные динамические библиотеки).

-m32 предназначен для компиляции 32-битных объектов на компиляторе, настроенном для компиляции 64-битных объектов по умолчанию.

10 голосов
/ 11 марта 2010

Пока ОС поддерживает как 32-битные, так и 64-битные программы (подсказка: не все это делают, например OpenBSD) в 64-битной ОС, у вас не должно быть никаких проблем, если у вас есть все 32-битные зависимости за это ..

...