2011-10-10 12 views
7

Doskonale zdaję sobie sprawę z tego, że na tym forum pojawiło się wiele podobnych problemów, jednak żadne z tych rozwiązań nie pomogło mi.Program nie może się uruchomić, ponieważ brakuje pliku * .dll - MinGW, Eclipse, Windows 7

Próbuję uruchomić Eclipse CDT z MinGW toolchain na Windows 7 Service Pack 1. Zrobiłem to już w systemie Windows XP i myślałem, że ta sama procedura sprawi, że będzie działała sprawnie na Windows 7, ale wygląda na to, że się pomyliłem ;)

Po zainstalowaniu MinGW z automatycznego instalatora (na wszelki wypadek, gdy zainstalowałem kilka rzeczy więcej, niż potrzebowałem) i dodaniu C:/MinGW/bin do zmiennej środowiskowej PATH, spróbowałem skompilować proste Hello , Świat! program. Eclipse nie dał mi żadnych błędów, ale nie chciał dać żadnych wyników w oknie konsoli. Zignorowany, próbowałem uruchomić plik wykonywalny poza środowiskiem Eclipse i otrzymałem komunikat o błędzie, że "Program nie może się uruchomić, ponieważ brakuje biblioteki libstdC++ - 6.dll".

Co dziwne, ta biblioteka dll znajduje się w katalogu C:/minGW/bin, więc zmienna PATH powinna ją "znaleźć", ale tak się nie dzieje. Skopiowanie biblioteki DLL do katalogu z plikiem wykonywalnym pomogło, ale jest to oczywiście rozwiązanie krótkoterminowe i wolałbym mieć bardziej "normalny".

Rzeczą, która sprawia, że ​​mój problem jest inny, myślę, że od innych, które zauważyłem na tej tablicy, to fakt, że Eclipse nie znajduje żadnych błędów z moją zmienną PATH (co zwykle robi, jeśli MinGW nie było zawarte w zmiennej Path lub czymś), a poza tym wymagane biblioteki DLL są tam, gdzie powinny, ale wygląda na to, że mój Windows ich nie może znaleźć.

+0

Zakładam, że już sprawdziłeś, czy jest to "prawdziwy" plik, a nie dowiązanie symboliczne? –

+0

Są to prawdziwe pliki * .dll - jak już powiedziałem, skopiowanie ich do folderu z plikiem wykonywalnym rozwiązało problem, ale szukam bardziej "eleganckiego" rozwiązania i niezależnego od maszyny, na której program jest uruchomiony. – user988066

+1

Po prostu z ciekawości, wylogowałeś się i ponownie. Mieliśmy ten problem przed i wylogować się/pomógł –

Odpowiedz

5

"Prawdziwym" rozwiązaniem jest skopiowanie biblioteki DLL lokalnie. Musisz wysłać tę bibliotekę DLL podczas wysyłania pliku EXE.

+0

Cóż, to wydaje się niepotrzebnie skomplikowane . Poza tym, widziałem implementacje Eclipse na Windows 7, które działało bez żadnych podobnych shenaniganów - a więc, co może być nie tak z moim? – user988066

+3

Możesz przekazać -static do gcc. – Joshua

+1

Co według laika oznacza ...? Gdzie mam to zrobić w Eclipse? – user988066

Powiązane problemy