2014-12-28 15 views
5

Próbuję portować oprogramowanie linuksowe w systemie Windows. Moje oprogramowanie zależy od gtk, boost i libgerbv (które ręcznie skompilowałem na cygwin) Udało mi się je skompilować i działa, jeśli uruchomię je w terminalu cygwin, ale jeśli skopiuję .exe do folderu z cygwin1.dll i uruchomić go, kończy się po cichu Ten sam wynik, jeśli uruchomię go w cmd.exe.
Jak mogę "wyeksportować" ten plik wykonywalny poza środowiskiem cygwin? Chcę rozprowadzać go tylko z niezbędnych bibliotek dzielonych i cygwin1.dllUruchom cygwin zbudowany exe w oknach bez środowiska cygwin

Dzięki

+2

Z mojego doświadczenia wynika, że ​​aplikacje cygwin nie działają dobrze poza powłoką cygwin. Czy próbowałeś już MinGW http://www.mingw.org/ lub MSYS http://www.mingw.org/wiki/MSYS? – doc

+1

Użyj narzędzia [Dependency Walker] (http://www.dependencywalker.com/), aby upewnić się, że masz wszystkie zależności DLL. –

Odpowiedz

3

„Jak mogę«eksport»to wykonywalny poza cygwin środowiska?”

Krótko mówiąc: to niemożliwe. Musisz mieć zainstalowane środowisko cygwin na maszynie docelowej i uruchamiać programy stworzone w cygwin z powłoki cygwin.

Cygwin wymaga wielu własnych plików .dll, aby połączyć się z podstawowym systemem operacyjnym Windows. Nie można ich po prostu skopiować do innego systemu Windows bez kompletnej instalacji cygwin.

Here're trochę więcej szczegółów na ten temat: What is the difference between Cygwin and MinGW?


Dlatego wolę używać MinGW kierować systemach Windows przenośnie. Cygwin ma swoje uprawnienia i prawo do istnienia, jeśli chodzi o krzyżowanie kodu kompilacji dla różnych (na przykład osadzonych) obiektów działających w systemie Windows jako host.