Problem z grą po zainstalowaniu windowsa 7
Ostatnio zmodyfikowano 2013-04-03 19:34
m4tx |
» 2013-04-03 18:42:59 Taa? :) ogram Files (x86)\Dev-Cpp\MinGW32\lib" -static-libstdc++ -static-libgcc -Wall -Wextra |
Widać jak byk że to MinGW (albo raczej jego część) kompiluje a nie Dev. Jeszcze jedna uwaga: to, że se wstawiasz takie opcje do linkera to nie oznacza, że są one respektowane przez niego. -Wall i -Wextra to opcje kompilatora i wstawianie ich do linkera w tym przypadku nie ma najmniejszego sensu. |
|
mactec |
» 2013-04-03 19:10:27 Widać jak byk że to MinGW (albo raczej jego część) kompiluje a nie Dev. |
No tak, kompiluję Devem z mingw'em. Jeszcze jedna uwaga: to, że se wstawiasz takie opcje do linkera to nie oznacza, że są one respektowane przez niego. -Wall i -Wextra to opcje kompilatora i wstawianie ich do linkera w tym przypadku nie ma najmniejszego sensu. |
No to jak wytłumaczysz to: http://screenshooter.net/4216937/ebymywhDodałem w linkerze a działa. A tak wogóle większość IDE działa tak: wywołuje kompilator (w moim przypadku Mingw)a w jego parametrach daje pliki do skompilowania i rożne inne opcje(np. linkera) np. To jest Log Kompilacji z Deva, w linkerze dodałem -Wall -Wextra g++.exe "C:\Users\mactec\Desktop\Untitled1.cpp" -o "C:\Users\mactec\Desktop\Untitled1.exe" -I"C:\Program Files (x86)\Dev-Cpp\MinGW32\include" -L"C:\Program Files (x86)\Dev-Cpp\MinGW32\lib" -static-libstdc++ -static-libgcc -Wall -Wextra Jak widzisz podczas kompilowania w parametrach masz -Wall -Wextra i to nie ma znaczenia że dodałem to do linkera bo i tak kompilator to uwzględnia. |
|
m4tx |
» 2013-04-03 19:18:35 A tak wogóle większość IDE działa tak: wywołuje kompilator (w moim przypadku Mingw)a w jego parametrach daje pliki do skompilowania i rożne inne opcje(np. linkera) |
Brawo, przez ostatnie kilka postów próbowałem Ci to udowodnić. Jak widzisz podczas kompilowania w parametrach masz -Wall -Wextra i to nie ma znaczenia że dodałem to do linkera bo i tak kompilator to uwzględnia. |
Nie ma znaczenia, bo jest tylko jeden plik, więc można za jednym zamachem skompilować i podlinkować. Zupełnie inna sytuacja jest, gdy chcemy skompilować i linkować kilka plików .cpp. Wtedy IDE N (gdzie N - liczba plików do skompilowania) wywołuje kompilator, który tworzy pliki .o, a potem 1 raz linker, który składa to wszystko do kupy (czyli po prostu tworzy plik .exe, wykonywalny ELF lub inny, w zależności od platformy i upodobań programisty). Wtedy, gdy dasz wspomniane opcje do linkera, całość może się zachować całkowicie inaczej. I prawdopodobnie kompilator nie otrzyma wtedy tych opcji, które tak bardzo chciałeś mu podać. |
|
mactec |
» 2013-04-03 19:34:18 Brawo, przez ostatnie kilka postów próbowałem Ci to udowodnić. |
A Ci również. Nie ma znaczenia, bo jest tylko jeden plik, więc można za jednym zamachem skompilować i podlinkować. Zupełnie inna sytuacja jest, gdy chcemy skompilować i linkować kilka plików .cpp. Wtedy IDE N (gdzie N - liczba plików do skompilowania) wywołuje kompilator, który tworzy pliki .o, a potem 1 raz linker, który składa to wszystko do kupy (czyli po prostu tworzy plik .exe, wykonywalny ELF lub inny, w zależności od platformy i upodobań programisty). Wtedy, gdy dasz wspomniane opcje do linkera, całość może się zachować całkowicie inaczej. I prawdopodobnie kompilator nie otrzyma wtedy tych opcji, które tak bardzo chciałeś mu podać. |
No to tutaj już zależy jak to wszystko będzie IDE wywoływało, bo jest możliwość, że było by dobrze. g++ -c plik1.cpp plik2.cpp g++ -o plik1.o plik2.o -opcje linkera No i wtedy się skompiluje bez problemów, no ale są też możliwości że Ci się nie skompiluje i będzie błąd(czyli to o czym ty mówiłeś), dlatego najlepiej jest kompilować wszystko samemu, zawsze ma się większą kontrolę :). |
|
1 « 2 » |