2011-06-25 29 views
6

OK, chłopaki, mam nadzieję, że jest to dość proste pytanie: Czy istnieje sposób na uruchomienie programu C skompilowanego pod Linuksem z gcc w systemie operacyjnym Windows? Proszę, nie mów mi, żebym przekompilował go pod Windowsem, ponieważ już próbowałem, ale wygląda na to, że nie ma kompilatora windowsowego 128-bitowego, a używanie bibliotek bignum sprawia, że ​​mój program jest 10 do 100 razy wolniejszy. Czy istnieje jakiś sposób, aby faktycznie uruchomić Binary Linux pod Windowsem? Ktoś powiedział mi coś o cygwin, ale nie wiem, od czego zacząć. (Mój program również powinien być przenośny, więc nie potrzebuję instalować programów i rzeczy na moim komputerze).Uruchamianie programu skompilowanego pod Linuksem gcc pod Windows

Dziękuję bardzo! Matteo

+0

Czy próbowałeś mingw? – Mat

+0

Zrobiłem, ale nie rozpoznaję __uint128_t ... żadnej wskazówki? –

Odpowiedz

8

Nie ma bezpośredniego sposobu. Plik wykonywalny Linux ma radykalnie inny format niż Windows. Istnieje kilka innych opcji.

  • cygwin. Skompiluj program z GCC pod cygwin. Wierzę, że zbuduje windows exe, który używa warstwy zgodności cygwin.

  • zainstaluj maszynę wirtualną podobną do VBox. Zainstaluj Linuksa w VBoxie. Uruchom tam program.

  • http://www.andlinux.org ma ramy do robienia tego. Nigdy tego nie próbowałem, ale jest film instruktażowy http://www.youtube.com/watch?v=nULDHPCm9p4.

+1

Tak więc, jeśli skompiluję program pod cygwin, wyniknie w nim plik .exe, którego mogę użyć na dowolnym komputerze z systemem Windows, jeśli wstawię jako "cygwin1.dll" w tym samym katalogu .exe? –

+1

dll cygwin musi znajdować się w miejscu, w którym system Windows może go znaleźć. Szczerze mówiąc, unikam okien i nie pamiętam dokładnie, żeby to ustawić. –

+0

Cześć! Próbowałem skompilować go pod Cygwin, ale ...! Wygląda na to, że nawet nie rozpoznaje identyfikatora __uint128_t! Zastanawiam się ... w której wersji cygwin zostały wprowadzone __uint128_t? Moja aktualna wersja gcc cygwin to 4.3.4 ... –

3

proszę nie mów mi przekompilować go pod oknami

musisz skompilować go pod Windows. Przepraszam!

Jeśli naprawdę nie możesz znaleźć kompilatora obsługującego 128-bitowe liczby całkowite, powinieneś użyć jakiegoś asemblera do replikowania instrukcji wysyłanych przez kompilator systemu Linux.

0

Użyj maszyny wirtualnej dla systemu Linux jako systemu gościa w systemie operacyjnym Windows. Uruchom plik wykonywalny w maszynie wirtualnej. Ale najlepiej jest skompilować grę pod kombinacją gcc-cygwin.

3

Wydaje mi się, że może to zrobić flinux.

Z opisu:

... jest dynamiczny tłumacz binarny ... zdolne do pracy niemodyfikowanych aplikacji linuksowych na Windows ...

Uwaga: Nie Przetestowałem to .

+0

Testowałem FLinux do uruchamiania Linuksa z linii poleceń i zadziałało. Nie ma potrzeby rekompilacji programu. – Phil

0

Od aktualizacji Windows Anniversary Update system Windows jest w stanie samodzielnie uruchomić binarki Linux poprzez Windows Subsystem for Linux (WSL), powszechnie znany jako Bash on Ubuntu on Windows.

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

Po instalacji można otworzyć sesję bash, przejdź do /mnt/<driveletter>/<path to your program> i uruchomić plik wykonywalny jakbyś systemem Linux.

Uwaga: WSL nadal jest w wersji beta.

Powiązane problemy