Rudy Temat założony przez niniejszego użytkownika |
[Allegro] Pojedynczy plik źródłowy » 2009-09-02 22:33:16 Witam.
Temat może nie do końca stuprocentowy do treści ale między innymi o to chodzi :)
Otóż... Ściągłem niedawno Allegro i chciałem zacząć z nim pracować. Jak większości użytkowników Allegro robi "chrzest programisty" i tworzy losowy błąd kompilacji. U mnie trafiło na "[Linker error]...". Poczytałem co nieco i znalazłem rozwiązanie problemu - Projekt/Opcje projektu/Pliki nagłówkowe. Ale to jest dostępne tylko, gdy działa się na projekcie, a co gdybym chciał na pojedynczym pliku źródłowym?
{Błąd naprawiony} W międzyczasie postanowiłem że przestanę być taki wybredny (w końcu trzeba dorośleć do projektów), po czym utworzyłem projekt allegro static. Zrobiłem to, co powinienem zrobić z plikami nagłówkowymi, po czym odpaliłem. Działało. Wziąłem się więc za naukę i wkleiłem kolejny kod z tutoriala. Działało. Problem tylko w tym, że to nie był ten kod, tylko ten co wyskoczył na początku (poznałem po działaniu programu). Macie może jakieś szalone pomysły jak to naprawić? |
|
GoldWolf |
» 2009-09-02 22:49:45 Trochę tego dużo nie wiem czy zjażyłem. Po pierwsze próbowałem środowiska Code:B -> lepsze jest od dev(w wersji podstawowej). Po drugie, gdzie Ty masz zainstalowanego tego Dev-a? Po trzecie w większości znaczących środowisk tworzy się projekt.
PS jeśli zdecydujesz się na zainstalowanie Coda to w kursie znajdziesz instrukcje co i jak, jeśli nie to wrzuć kod programu i błędy jakie się pokazują. |
|
DejaVu |
» 2009-09-02 22:53:31 |
|
Rudy Temat założony przez niniejszego użytkownika |
» 2009-09-02 22:58:06 Toteż napisałem, żeby reszty nie czytać, bo może się pomieszać ;P 1. Code:B nie próbowałem, nie mam, nie zamierzam próbować (na Dev C++ też musi się jakoś dać to zrobić) 2. Na "E:/Dev-Cpp/" 3. Czyli nie ruszę z Allegro bez utworzenia projektu? Kod z tutoriala: #include <allegro.h> int main() { allegro_init(); install_keyboard(); set_color_depth( 8 ); set_gfx_mode( GFX_AUTODETECT, 800, 600, 0, 0 ); set_palette( default_palette ); clear_to_color( screen, 48 ); textout_ex( screen, font, "Witaj w Allegro !", 20, 20, makecol( 255, 0, 255 ), - 1 ); readkey(); allegro_exit(); return 0; } END_OF_MAIN();
Log: (w skrócie kompilator znajduje każdą funkcję allegro i pisze błąd z dopiskiem: "[Linker error] undefined reference to " Kompilator: Default compiler Wykonywanie g++.exe... g++.exe "E:\Dev-Cpp\first steps\BezNazwy1.cpp" -o "E:\Dev-Cpp\first steps\BezNazwy1.exe" -pg -g3 -I"E:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include" -I"E:\Dev-Cpp\include\c++\3.4.2\backward" -I"E:\Dev-Cpp\include\c++\3.4.2\mingw32" -I"E:\Dev-Cpp\include\c++\3.4.2" -I"E:\Dev-Cpp\include" -L"E:\Dev-Cpp\lib" -lgmon -pg -g3 C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x31): In function `Z13_mangled_mainv': E:/Dev-Cpp/first steps/BezNazwy1.cpp:4: undefined reference to `_install_allegro_version_check' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x36):E:/Dev-Cpp/first steps/BezNazwy1.cpp:5: undefined reference to `install_keyboard' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x42):E:/Dev-Cpp/first steps/BezNazwy1.cpp:6: undefined reference to `set_color_depth' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x6e):E:/Dev-Cpp/first steps/BezNazwy1.cpp:7: undefined reference to `set_gfx_mode' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x73):E:/Dev-Cpp/first steps/BezNazwy1.cpp:8: undefined reference to `_imp__default_palette' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x7b):E:/Dev-Cpp/first steps/BezNazwy1.cpp:8: undefined reference to `set_palette' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x88):E:/Dev-Cpp/first steps/BezNazwy1.cpp:9: undefined reference to `_imp__screen' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0xae):E:/Dev-Cpp/first steps/BezNazwy1.cpp:10: undefined reference to `makecol' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0xd7):E:/Dev-Cpp/first steps/BezNazwy1.cpp:10: undefined reference to `_imp__font' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0xe2):E:/Dev-Cpp/first steps/BezNazwy1.cpp:10: undefined reference to `_imp__screen' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0xec):E:/Dev-Cpp/first steps/BezNazwy1.cpp:10: undefined reference to `textout_ex' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0xf1):E:/Dev-Cpp/first steps/BezNazwy1.cpp:12: undefined reference to `readkey' C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0xf6):E:/Dev-Cpp/first steps/BezNazwy1.cpp:14: undefined reference to `allegro_exit'
C:\DOCUME~1\Komputer\USTAWI~1\Temp/ccKUaaaa.o(.text+0x164): In function `WinMain': E:/Dev-Cpp/first steps/BezNazwy1.cpp:17: undefined reference to `_WinMain' collect2: ld returned 1 exit status
Wykonanie zakończone
EDIT do P. Piotra: także byłem na tej stronie ;) . Opcje projektu są dostępne tylko, gdy jest projekt, nie plik źródłowy. Natomiast jeśli chodzi o problem z projektem, nie rozumiałem tak profesjonalnego języka (miejsc, gdzie pisze Konsolidator można znaleźć wiele w opcjach projektu, pomógł mi dopiero temat "Instalacja allegro5", z nudów przeglądałem i tam znajazłem odpowiedź. Pozostał jeszcze problem z plikiem źródłowym) |
|
DejaVu |
» 2009-09-02 23:45:42 W kursie C++ masz napisane gdzie te opcje można znaleźć http://kursy.ddt.pl/?LessonId=118. /edit: Widzę, że zrobiłeś drastyczne zmiany w pierszym poście. Nie wiem o co Ci teraz za bardzo chodzi jeśli piszesz (chyba), że aplikacja allegro Ci się odpala. |
|
Rudy Temat założony przez niniejszego użytkownika |
» 2009-09-03 08:23:37 Cóż... chciałem wprowadzić do mojej wypowiedzi trochę humoru i jedną ciekawostkę, ale wyszło, że przez to zagmatwałem całą wypowiedź. Dlatego skróciłem to do najważniejszych informacji
Obecnie chodzi mi o to, że allegro odpala tylko w projekcie (po drobnej modyfikacji projektu). Ja natomiast chciałbym go odpalić w pojedynczym pliku źródłowym. Chciałem się więc zapytać, czy da się, a jak tak, to jak? |
|
DejaVu |
» 2009-09-03 17:20:06 Możesz mieć jeden plik źródłowy ale musisz mieć projekt. |
|
Rudy Temat założony przez niniejszego użytkownika |
» 2009-09-03 19:36:07 Tego chciałem się dowiedzieć. Dzięki za pomoc, zamykam. |
|
« 1 » |