- How to convert a linux executable file (binary) to windows exe file?
- 4 Answers 4
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Переход с Linux на Windows 10
- Вариант 1: Форматирование диска с дальнейшей установкой Windows 10
- Вариант 2: Установка Windows 10 рядом с Linux
- Шаг 1: Работа с дисковым пространством в Linux
- Шаг 2: Установка Виндовс 10
- Шаг 3: Восстановление загрузчика GRUB
How to convert a linux executable file (binary) to windows exe file?
Is there any way to convert a Linux binary file to windows exe file? For example if in Linux create a very simple binary file like this:
echo "main()" >> main.c gcc main.c -o main
Although technically possible, would be insanely complicated, headers change, change all dynamically linked libraries etc. What are your requirements?
thanks alot, i know that it is not too easy, but assume we have a simple binary file like «main» as i mentioned above how can i convert it to a windows exe file?
@Mojtaba In your place I looked for a runtime binary emulator, and tried to link it statically with the linux binary. It will be slow and dirty, but this is how you can get what you wanted with the smallest possible development effort.
4 Answers 4
You can not convert a linux executeable into a windows executeable. But you can compile the source with cross-compiler.
sudo apt-get install mingw32 i586-mingw32msvc-cc main.c -o main.exe
thanks alot i know tha it is not too easy but assume we have a simple binary file like «main» as i mention a bove how can i convert tis to an exe file
If you only have an linux executable file and no chance to access the source code of that binary you can only use cygwin in windows to execute the program. A conversion is not possible due to the compiler binds the systemcalls (like consoleoutput) to the system in which the program was compiled. in your case the program was compiled in linux so the mashinecode calls the linux systemcalls. you have no chance to convert it to a windows exe
Cygwin emulates a linux enviroment on the windows mashine, it does not convert the binary. Cygwin starts the binary in a sandbox so that the program can find the needed libraries and «endpoints» for the system calls.
If you had some incredibly simple program (such as ‘int main() < return 0; >‘), would that be feasible to port just from the binary?
@Kevin No, Direct conversation is not possible. Maybe you can try to decompile the excecutable in the source language and recompile it on you target platform. I do not know if this works.
There are no means to convert the binary.
- Recompile for other platform, but this requires the source (and cross-platform support in the source or the used libraries must be available on the other platform as well). cygwin / mingw , for example, can help providing the required support/libraries.
- wine could be used to run Windows binaries on Linux (but not the other way around)
@veger Cygwin cannot run Linux binaries — see its home page: «Cygwin is not: a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.»
If you have the lastest windows 10. Just install linux subsystem in the appstore. you can run whatever linux binary in windows you want
If you need to run your code/app/program in linux/mac/windows under another OS (linux to win or reverse exc..) but you don’t want to use virtual machines or wsl systems you can use docker. Here is link: https://www.docker.com But you will need to learn first. What Is Docker? Docker is similar in concept to Virtual Machines, except it’s much more lightweight. Instead of running an entire separate operating system (which is a massive overhead), Docker runs containers, which use the same host operating system, and only virtualize at a software level
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Переход с Linux на Windows 10
Вариант 1: Форматирование диска с дальнейшей установкой Windows 10
Этот способ подойдет пользователям в тех случаях, когда надобность в Linux просто отпала. Тогда ничего не мешает просто отформатировать содержимое диска или только конкретный раздел, чтобы без проблем инсталлировать туда Windows 10. В таких ситуациях никаких дополнительных настроек производить не придется, поскольку по сути это будет обычная «чистая» установка новой операционной системы на пустой жесткий диск или SSD. На нашем сайте уже имеется статья по данной теме, поэтому вам остается только изучить инструкции, перейдя по указанной ниже ссылке.
Вариант 2: Установка Windows 10 рядом с Linux
Многие пользователи знают о том, что установить любой дистрибутив рядом с любой версией Виндовс очень просто, поскольку не возникает никаких конфликтов с загрузчиками, а также инсталляторы предлагают выбрать соответствующий пункт, чтобы сохранить все файлы обнаруженной ОС. Однако при возникновении обратной ситуации процедура значительно усложняется. Она делится на несколько этапов, во время которых следует создать неразмеченное пространство, установить саму операционную систему и наладить корректную работу загрузчика. Именно это мы и предлагаем сделать далее.
Шаг 1: Работа с дисковым пространством в Linux
Для начала переместимся к Linux, чтобы здесь создать свободное дисковое пространство, которое в дальнейшем будет использовано для разметки файловой системы при установке Windows 10. За пример предлагаем взять самый популярный дистрибутив — Ubuntu, а вы, отталкиваясь от особенностей используемой сборки, выполните точно такие же действия.
- К сожалению, сжать раздел в Линукс просто так не получится, поскольку системный том изначально смонтирован, а размонтировать его нельзя. Придется запускать компьютер с LiveCD. Детальнее о создании такого загрузчика читайте в материале по ссылке ниже.
После успешного создания загрузочной флешки запустите ее и переходите к режиму ознакомления с ОС.
Мы рекомендуем отделять свободное пространство от основного раздела Linux только с конца, поскольку в начале всегда хранятся важные файлы для загрузки системы, о чем вы и должны быть уведомлены при работе с утилитой GParted. Дополнительно отметим, что стоит создать пространство с запасом и учетом того, что при работе с Windows может понадобиться добавление второго логического тома для хранения пользовательских файлов.
Шаг 2: Установка Виндовс 10
Мы бы не стали останавливаться на этом этапе, поскольку он знаком многим пользователям, но решили сделать это, чтобы учесть абсолютно все нюансы, связанные с неразмеченным пространством и созданием загрузочной флешки в Linux.
- Для начала приобретите Windows 10 на официальном сайте или загрузите ISO-образ. После этого его придется записать на флешку или диск, чтобы задействовать это устройство в качестве загрузочного. Детальнее о выполнении этой операции в Linux читайте в другом материале на нашем сайте, воспользовавшись указанной ниже ссылкой.
Позже вы сможете вернуться к использованию Windows 10, но сейчас загрузчик сломан, поэтому не получится корректно загрузить ни одну из инсталлированных ОС. Давайте приступим к исправлению этой ситуации.
Шаг 3: Восстановление загрузчика GRUB
Загрузиться в Linux на данном этапе не получится, поскольку загрузчик GRUB был нарушен. Придется вернуться к LiveCD, о которой мы уже говорили в первом шаге. Вставьте флешку с образом диска в свободный разъем и запустите компьютер.
- В появившемся окне инсталляции переходите к ознакомлению с дистрибутивом.
- Откройте меню приложений и запустите оттуда «Терминал». Сделать это можно и через горячую клавишу Ctrl + Alt + T.
- Смонтируем корневой раздел с файлами Linux. По умолчанию за это отвечает команда sudo mount /dev/sda1 /mnt . Если расположение диска отличается от /dev/sda1, замените данный фрагмент на необходимый.
- Следующая серия команд необходима для монтирования раздела с загрузчиком, если такой выделен в отдельный логический том. Для этого используйте строку sudo mount —bind /dev/ /mnt/dev/ .
- Вторая команда имеет вид sudo mount —bind /proc/ /mnt/proc/ .
- В конце остается только указать sudo mount —bind /sys/ /mnt/sys/ , чтобы завершить монтирование файловых систем.
- Перейдите к работе с необходимым окружением, указав sudo chroot /mnt/ .
- Здесь начните инсталляцию файлов загрузчика, вписав grub-install /dev/sda .
- После этого выполните обновление через update-grub2 .
- Вы будете уведомлены об обнаружении операционных систем и успешном окончании генерирования файла настройки GRUB.
- Перезагрузите компьютер, воспользовавшись удобным для вас методом.
- Теперь при старте ПК можно выбрать одну из установленных ОС для дальнейшей ее загрузки.
Теперь вы знакомы с принципом инсталляции Windows 10 рядом или вместо Linux. Как видно, при выполнении этой процедуры следует учитывать определенные особенности, которые связаны с загрузчиком операционных систем. Если все делать с точностью по приведенным инструкциям, никаких проблем с установкой возникнуть не должно и обе ОС будут доступны для взаимодействия в любой момент.