Запуск gux-скомпилированной программы под windows - PullRequest
8 голосов
/ 25 июня 2011

Хорошо, ребята, надеюсь, это довольно простой вопрос: Есть ли способ запустить программу на C, скомпилированную под Linux с gcc в операционной системе Windows? Пожалуйста, не говорите мне перекомпилировать его под windows, так как я уже пробовал, но похоже, что никакой компилятор c Windows не имеет 128-битного собственного типа, а использование библиотек bignum делает мою программу примерно в 10-100 раз медленнее. Есть ли способ на самом деле запустить бинарный Linux под Windows? Кто-то рассказал мне кое-что о cygwin, но я не знаю, с чего начать. (Моя программа также должна быть переносимой, поэтому мне не нужно устанавливать программы и все такое на моей машине).

Большое спасибо! Маттео

Ответы [ 5 ]

9 голосов
/ 25 июня 2011

Прямого пути нет.Исполняемый файл Linux имеет совершенно другой формат, чем Windows.Есть несколько других вариантов.

  • cygwin.Скомпилируйте программу с GCC под Cygwin.Я считаю, что это создаст Windows EXE-файл, который использует уровень совместимости Cygwin.

  • установить виртуальную машину, как VBox.Установите Linux в VBox.Запустите программу там.

  • http://www.andlinux.org имеет рамки для этого.Я никогда не пробовал, но есть видеоурок http://www.youtube.com/watch?v=nULDHPCm9p4.

3 голосов
/ 30 марта 2016

Мне кажется, что flinux может это сделать.

Из описания:

... это динамический бинарный переводчик ... способный запускать немодифицированные бинарные файлы Linux в Windows ...

Примечание: я не проверял это.

3 голосов
/ 25 июня 2011

Пожалуйста, не говорите мне перекомпилировать под окнами

Вам придется перекомпилировать его под Windows. Извините!

Если вы действительно не можете найти компилятор с поддержкой 128-битных целых чисел, вам следует использовать ассемблер для репликации инструкций, которые выдает ваш компилятор Linux.

2 голосов
/ 12 января 2017

Начиная с Windows 10 Anniversary Update, Windows может запускать двоичные файлы Linux через Windows Subsystem for Linux (WSL), широко известный как Bash on Ubuntu on Windows.

См. https://msdn.microsoft.com/en-us/commandline/wsl

После установки вы можете открыть сеанс bash, перейти к /mnt/<driveletter>/<path to your program> и запустить свой исполняемый файл так, как будто вы работаете в Linux.

Примечание. WSL все еще находится на стадии бета-тестирования.

0 голосов
/ 26 июня 2011

Используйте Виртуальную машину для Linux в качестве гостевой ОС на вашей ОС Windows.Запустите ваш исполняемый файл под виртуальной машиной.Но лучше всего подкомпилировать в gcc-cygwin.

...