Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[GTK+] Instalacja i uruchamianie

Ostatnio zmodyfikowano 2012-12-15 17:36
Autor Wiadomość
Tomekz1991
Temat założony przez niniejszego użytkownika
[GTK+] Instalacja i uruchamianie
» 2012-12-14 15:36:51
Zdaję sobie sprawę z tego, że podobne tematy już się pojawiały i jest cała masa opracowań w internecie ale ja już naprawdę nie wiem co robię źle.

Najpierw postępowałem wg instrukcji prowadzącego zajęcia tzn:

1. Ściągnąć i rozpakować GTK+-bundle_2.24.10 do jakiegoś katalogu (będziemy go nazywać katalogiem GTK). W:\gtk+-2.24.10 lub W:\gtk+-2.24.8 (gdy ściągnięta była wcześniejsza wersja GTK).

Rozpakowanego zipa umieściłem na pulpicie w folderze o nazwie GTK. Jego ścieżka dostępu to C:\Users\TomekZ\Desktop

2. Uruchomić Codeblocks i otworzyć nowy projekt typu GTK+ project. Jako ścieżkę do GTK+ podać ścieżkę do katalogu GTK z punktu 1.

Po prostu wybrałem folder o nazwie GTK z pulpitu.

3. W menu Settings > Compiler and debugger w zakładce Compiler settings i podzakładce Other options (powinno tam być -std=c99) dopisać
-IW:\gtk+-2.24.8\include\gdk-pixbuf-2.0 (Zmienić tu ścieżkę na katalog GTK z punktu 1).
Zatem u siebie wpisuję:
-IC:\Users\TomekZ\Desktop\GTK\include\gdk-pixbuf-2.0

4. Ustawić zmienną PATH w zmiennych środowiska dla użytkownika (lub systemu - jeśli ktoś ma takie uprawnienia). W Windows 7 można to zrobić np przez
(a) klikniecie na menu Start,
(b) wpisanie z klawiatury słowa zmienne i wybranie Edytuj zmienne środowiska dla konta
(c) wybranie w górnej części (zatytułowanej Zmienne użytkownika dla ...) opcji Nowa i wpisanie PATH jako Nazwa Zmiennej oraz W:\gtk+-2.24.8\bin jako Wartość zmiennej.

wszystko robię tak jak opisano powyżej, na końcu w Wartość Zmiennej wpisuję C:\Users\TomekZ\Desktop\GTK\bin

GTK+ ściągam stąd:
http://www.gtk.org/download/win64.php (mam win7 64bit) w wersji 2.22

próbowałem zmieniać w ścieżkach dostępu nazwę GTK na gtk+-bundle_2.22.1 i inne tego typu ale to nic nie dało. Próbowałem też robić tak jak opisano tutaj:
http://pl.wikibooks.org/wiki/GTK%2B/Kompilacja_pod_systemem_Windows
tzn. z wiersza poleceń i dostaję nawet podobny komunikat co tam, ale mimo to nie działa.

W końcu spróbowałem też z linkowanie w konkretnym projekcie korzystając z [C++] Instalacja bibliotek w Code::Blocks

Robię to w sposób opisany w tym artykule:

Dochodzę do momentu Linkowanie
Znowu klikamy przycisk Add i wpisujemy ścieżkę* do folderu lib w folderze z biblioteką, u mnie wygląda ona tak: C:\Users\Jakub\Desktop\Biblioteka\lib. I z tym nie mam problemu, ale dalej:

Jeżeli to mamy, to otwieramy zakładkę Linker settings, i tam kolejny raz przycisk Add. Plik, który chcemy dodać ma rozszerzenie *.a lub *.lib. Możemy taki plik dodać, wpisując jego ścieżkę*, lub wpisując po prostu jego nazwę, np "biblioteka" (biblioteka.a).
Pliki z tym rozszerzeniem mam tylko w katalogu lib. No i teraz pytanie, który konkretnie mam dodać? Bo ja mam tam pełno plików z takimi rozszerzeniami (zarówno *a jak i *lib). Który z nich dodać? Dodałem wszystkie, ale błędy wyskakują takie same...


Może pokażę errory które mi wywala przy poniższym programie:

C/C++
#include <gtk/gtk.h>
int main( int argc, char * argv[] )
{
    gtk_init( & argc, & argv );
    GtkWidget * window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
    gtk_window_set_title( GTK_WINDOW( window ), "Hello" );
    gtk_window_set_position( GTK_WINDOW( window ), GTK_WIN_POS_CENTER );
    g_signal_connect( G_OBJECT( window ), "delete_event", G_CALLBACK( gtk_main_quit ), NULL );
    gtk_container_set_border_width( GTK_CONTAINER( window ), 30 );
    GtkWidget * button = gtk_button_new_with_label( "Hello World" );
    gtk_container_add( GTK_CONTAINER( window ), button );
    gtk_widget_show( button );
    gtk_widget_show( window );
    gtk_main();
    return 0;
}

obj\Release\main.o:main.c|| undefined reference to `gtk_init_abi_check'|
obj\Release\main.o:main.c|| undefined reference to `gtk_window_new'|
obj\Release\main.o:main.c|| undefined reference to `gtk_window_get_type'|
obj\Release\main.o:main.c|| undefined reference to `g_type_check_instance_cast'|
obj\Release\main.o:main.c|| undefined reference to `gtk_window_set_title'|
obj\Release\main.o:main.c|| undefined reference to `g_type_check_instance_cast'|
obj\Release\main.o:main.c|| undefined reference to `gtk_window_set_position'|
obj\Release\main.o:main.c|| undefined reference to `g_type_check_instance_cast'|
obj\Release\main.o:main.c|| undefined reference to `gtk_main_quit'|
obj\Release\main.o:main.c|| undefined reference to `g_signal_connect_data'|
obj\Release\main.o:main.c|| undefined reference to `gtk_container_get_type'|
obj\Release\main.o:main.c|| undefined reference to `g_type_check_instance_cast'|
obj\Release\main.o:main.c|| undefined reference to `gtk_container_set_border_width'|
obj\Release\main.o:main.c|| undefined reference to `gtk_button_new_with_label'|
obj\Release\main.o:main.c|| undefined reference to `g_type_check_instance_cast'|
obj\Release\main.o:main.c|| undefined reference to `gtk_container_add'|
obj\Release\main.o:main.c|| undefined reference to `gtk_widget_show'|
obj\Release\main.o:main.c|| undefined reference to `gtk_widget_show'|
obj\Release\main.o:main.c|| undefined reference to `gtk_main'|
||=== Build finished: 19 errors, 0 warnings ===|


Jakieś pomysły co robię źle? Bo ja już naprawdę nie wiem.
P-70979
czosnek17
» 2012-12-14 19:43:38
Nie wiem, gdzie może być błąd, ale sam też miałem wielkie problemy z instalacją tej biblioteki, ale w końcu się udało. Zobacz tutaj, może pomoże: http://cpp0x.pl/forum/temat/?id=7187&p=9
P-71009
Tomekz1991
Temat założony przez niniejszego użytkownika
» 2012-12-14 21:07:48
Niestety, ale nie pomogło. Instalacja tej biblioteki to jakaś tragedia po prostu... Nie rozumiem dlaczego żaden ze sposobów nie działa.
P-71041
Mrovqa
» 2012-12-15 15:38:36
GTK+ ściągam stąd:
http://www.gtk.org/download/win64.php (mam win7 64bit) w wersji 2.22
Jeżeli kompilujesz 32-bitowy projekt z wersją 64-bitową GTK+ to dziwisz się? Zainstaluj 32-bitowe GTK+.
P-71092
DejaVu
» 2012-12-15 17:36:48
To są błędy linkera. Proces instalacji dla innej biblioteki został omówiony tu:
http://cpp0x.pl/kursy/Kurs-SFML-2-0-C++ /Instalacja-i-konfiguracja/Konfiguracja-SFML-2-0-Code-Blocks/464

Popatrz na screeny. Zasada konfiguracji jest ta sama, tylko inne nazwy się wpisuje w polach wymienionych we wspomnianym rozdziale.
P-71112
« 1 »
  Strona 1 z 1