2016-12-08 4 views
0

Я хочу создать двоичный исполняемый файл моего исходного кода для запуска на 32-разрядной машине gcc. Но у меня установлен 64 бит gcc. Есть ли способ создать двоичный исполняемый файл для 32-битных gcc-машин из моего 64-битного gcc?Как создать бинарный исполняемый файл для 32-битной gcc-машины с моей 64-битной gcc-машины?

ответ

1

Моя машина ELF 64-бит LSB по умолчанию, если и компилировать он будет производить вам 64-битный исполняемый

gcc hello.c -o hello 
.

использование файл, чтобы проверить его

hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=9f8fa8ac13fc03672306da1d5d4ee6671114eb11, not stripped 

Используйте флаг -m32, то вы заставляете компилятор для 32 бит

gcc -m32 hello.c -o hello 

file hello 
hello : ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=c72216023939b2832467c624850f164d1857e645, not stripped 

Если вы ищете кросскомпилируете Это может помочь U How to determine host value for configure when using cross compiler

1

Вам необходимо, чтобы GCC использовал флаг -m32.

Вы можете попробовать написать простой сценарий оболочки для своего $ PATH и называть его gcc (убедитесь, что вы не перезаписываете исходный gcc и убедитесь, что новый скрипт появился раньше в $ PATH и что он использует полный . путь к НКУ

компилировать ваш бинарный файл как -:

/bin/gcc -m32 "source file" 
+0

Не могли бы вы объяснить это немного ясным образом – Nazeem

+0

@Nazeem Я думаю, что вы спрашиваете о строке сценария оболочки. Здесь я имею в виду, если у вас есть gcc-компилятор для 32-битного t Вы можете скомпилировать свою программу с помощью кросс-компилятора. Надеюсь, ты понял. –

+0

https://gcc.gnu.org/ml/gcc-help/2010-09/msg00040.html эта ссылка может вам помочь. –

Смежные вопросы