Rudy Temat założony przez niniejszego użytkownika |
Code::Blocks - kilka pytań » 2009-09-07 22:58:21 Witam ponownie. Otóż niedawno przesiałem się z Dev'a na Code::Blocks. Wygląd - lepszy, użytkowanie - lepsze, język - zły, bo angielski ;), ale da się żyć. Ale miałbym kilka pytań odnośnie jego działania: 1. Gdzie domyślnie kompilator się kieruje w poszukiwaniu pliku widząc #include <...> ? 2. Gdzie można dodać mu nowe miejsca przeszukiwania? 3. Czy można jakoś język programu zmienić na polski (wygodniej) 4. Czemu program wczytuje plik alfont.h, ale nie może użyć funkcji w pliku? (po użyciu funkcji pisze undefined reference, natomiast, jeślie się napisze alfont_ i zaczeka, aż pokaże się lista, te funkcje są w liście) |
|
DejaVu |
» 2009-09-07 23:34:53 Ad 2) Settings/Compiler and Debugger: Zakładka: Search directories Podzakładka Compiler - tutaj dodać katalogi z dodatkowymi z include'ami Pozakładka Linker - miejsce przeszukiwania dodatkowych lib'ów |
|
Rudy Temat założony przez niniejszego użytkownika |
» 2009-09-08 18:36:12 Hehe, mi też się te dwie nazwy mylą :D Dodałem odpowiednie katalogi, tam gdzie powinienem. Tego błędu już nie ma, pojawił się natomiast inny błąd: mingw32-g++.exe: ../lib/liballeg_s.a: No such file or directory Dodałem folder, gdzie kompilator powinien szukać tego pliku, tam, gdzie P. Piotr kazał, dodatkowo podałem jeszcze w Linker settings/Link liblaries dokładne położenie pliku, błąd nadal występuje. Nie jest to jednak związane z wprowadzaniem biblioteki allegro.h, tylko alfont.h, ponieważ gdy usunąłem wpis #include <alfont.h> ten błąd zniknął (pojawiły się błędy, że nie można znaleźć funkcji alfona, ale to zrozumiałe dlaczego), a zatem błąd pochodzi z biblioteki alfont. Jak mogę rozwiązać tego typu problem? |
|
jimmye |
» 2009-09-09 15:18:51 A masz ten plik ? liballeg_s.a |
|
Rudy Temat założony przez niniejszego użytkownika |
» 2009-09-09 16:16:28 ... no mam, czemu miałbym nie skopiować wszystkich plików? |
|
malan |
» 2009-09-09 19:02:39 Spróbuj może dodać tą bibliotekę tak: Projekt -> Opcje projektu -> Parametry -> Dodaj plik -> lokalizacja biblioteki |
|
Rudy Temat założony przez niniejszego użytkownika |
» 2009-09-10 14:06:10 Czytaj temat, to nie jest Dev-Cpp, tylko Code::Blocks. Na C::B zrobiłem już coś podobnego (kto ma C::B, niech sprawdzi, czy to jest to): Settings -> Compiler and debugger -> Linker Settings -> Link Liblaries. Dalej nie działało. Po wyciągnięciu i przeczytaniu pewnego tematu z archiwum postanowiłem jaśniej określić moją sytuację, by mogliście mi pomóc: A więc. Zacząłem korzystać z Code::Blocks. Aby program działał dobrze, trzeba go odpowiednio przygotować (nakierować na foldery z lib'ami, includami, itd.) W tym mam właśnie problem. Jak już wcześniej napisałem, wprowadziłem do kompilatora plik z lib'em, oraz foldery, gdzie te pliki się znajdują. Mimo to pokazuje się błąd, jakby tego pliku nie było. Kod programu: #include <cmath> #include <algorithm>
#include <allegro.h>
#include <alfont.h>
using namespace std;
void draw_table( BITMAP * pos, int x, int y, int w, int h, int color, int move, int press ) { short col[ 4 ]; for( short arg = 0; arg < 4; arg++ ) col[ arg ] = makecol( min( max( color + move *( arg - 2 ), 0 ), 255 ) , min( max( color + move *( arg - 2 ), 0 ), 255 ) , min( max( color + move *( arg - 2 ), 0 ), 255 ) ); hline( pos, x, y, x + w - 2 + press, col[ 2 - 2 * press ] ); vline( pos, x, y + 1, y + h - 2 + press, col[ 2 - 2 * press ] ); hline( pos, x + 1, y + 1, x + w - 3 + press, col[ 3 - 2 * press ] ); vline( pos, x + 1, y + 2, y + h - 3 + press, col[ 3 - 2 * press ] ); rectfill( pos, x + 2, y + 2, x + w - 3, y + h - 3, col[ 2 ] ); hline( pos, x + 1 + press, y + h - 2, x + w - 2, col[ 1 + 2 * press ] ); vline( pos, x + w - 2, y + 1 + press, y + h - 3, col[ 1 + 2 * press ] ); hline( pos, x + press, y + h - 1, x + w - 1, col[ 0 + 2 * press ] ); vline( pos, x + w - 1, y + press, y + h - 2, col[ 0 + 2 * press ] ); } END_OF_FUNCTION( draw_table );
int main() { allegro_init(); alfont_init(); install_mouse(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 ); show_mouse( screen ); unscare_mouse(); set_uformat( U_UTF8 ); BITMAP * bufor = create_bitmap( SCREEN_W, SCREEN_H ); clear_to_color( bufor, makecol( 192, 192, 192 ) ); ALFONT_FONT * arial; arial = alfont_load_font( "C:/Windows/Fonts/arial.tff" ); int main = 1; while( main > 0 ) { draw_table( bufor, 110, 118, 100, 25, 192, 64, 0 ); blit( bufor, screen, 0, 0, 0, 0, bufor->w, bufor->h ); if( key[ KEY_ESC ] ) main = 0; } alfont_destroy_font( arial ); alfont_exit(); allegro_exit(); return( 0 ); } END_OF_MAIN()
Build Log: -------------- Build: default in Projekt1 ---------------
Compiling: allegro.cpp Linking executable: Allegro Mission.exe mingw32-g++.exe: ../lib/liballeg_s.a: No such file or directory Process terminated with status 1 (0 minutes, 1 seconds) 0 errors, 0 warnings
Dodatkowo, program nie chce pokazać polskich znaków, mimo, iż ustawiłem kodowanie tekstu w C::B na UTF-8, oraz dodałem funkcję ustawiającą to samo w programie. Domyślam się, że możecie mieć pewne problemy z oddzieleniem komentarzy z kodu. Proponuję skopiować tekst na notatnik, ustawić czcionkę, która ma te same wielkości liter i wyłączyć zawijanie wierszy. Powinno być lepiej. Mam nadzieję, że po dokładnym przedstawieniu błędu pomoc przyjdzie szybciej :) |
|
DejaVu |
» 2009-09-10 20:52:06 Skoro dostajesz nadal tem błąd to albo podałeś złą ścieżkę do katalogu albo w katalogu nie ma podanej biblioteki. |
|
« 1 » 2 |