Компиляция для x86 и x64 - PullRequest
       24

Компиляция для x86 и x64

6 голосов
/ 07 октября 2011

Можно ли настроить компилятор таким образом, чтобы он компилировал исполняемый файл / DLL для x86 и x64?Я имею в виду, один файл подходит для обеих платформ.

Я знаю только способ выбора платформ отдельно, но я хочу обе.

Возможно ли это?

1 Ответ

19 голосов
/ 07 октября 2011

Исполняемый файл x86 полностью поддерживается на хосте x64.Например, любой EXE-файл, который вы компилируете в 32-битном режиме, без проблем будет работать на 32-битном и 64-битном хосте.Если вы не знаете, зачем вам нужен 64-битный исполняемый файл, скорее всего, нет, поэтому достаточно 32-битного исполняемого файла.

Однако с DLL это другой вопрос.Архитектура DLL (32-битная или 64-битная) должна соответствовать исполняемому файлу, в котором будет использоваться DLL.Например, если вы пишете расширение для Windows x64 Explorer, файл explorer.exe будет 64-разрядным, поэтому ваша DLL также должна быть 64-разрядной, в противном случае ее нельзя будет загрузить.

Невозможно объединить две разные архитектуры в одну DLL или EXE в Windows.Поэтому вам понадобятся две библиотеки DLL, если вам потребуется поддержка как 32-битных, так и 64-битных хостов.

...