• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

GTK+ problem przy instalacji

Object Storage Arubacloud
0 głosów
272 wizyt
pytanie zadane 22 listopada 2017 w C i C++ przez 1SnajpeR7 Użytkownik (930 p.)

Windows 10 64-bitowy, środowisko Code::Blocks 16.01

Ściągnąłem sobie GTK+ Bundle  w wersji 2.22.1

Utworzyłem nowy projekt poprzez New -> Project -> New GTK+ Project. Potem podałem ścieżkę do biblioteki GTK (o /bin i resztę nie zapytał) i tworzą projekt o następującym kodzie:

#include <gtk/gtk.h>

int main (int argc, char *argv[])
{
    gtk_init(&argc, &argv);
  return 0;
}

I wyskoczył błąd 

undefined reference to gtk_init_abi_check

Co jeszcze powinienem zrobić aby kompilator dał mi spokój i skompilował ten program?

Może problem w tym że main.c jest .c a nie .cpp?

1 odpowiedź

+1 głos
odpowiedź 22 listopada 2017 przez j23 Mędrzec (194,920 p.)
wybrane 25 listopada 2017 przez 1SnajpeR7
 
Najlepsza

Co jeszcze powinienem zrobić aby kompilator dał mi spokój

Nic, to nie kompilator mąci Twój spokój a konsolidator ;) Błąd undefined reference ... oznacza brak biblioteki lub pliku źródłowego implementującego wymienioną w treści błędu funkcję. Sprawdź w opcjach projektu, czy wszystkie niezbędne biblioteki są dodane.

komentarz 23 listopada 2017 przez 1SnajpeR7 Użytkownik (930 p.)

Link do pobranej biblioteki (może stara wersja jest przyczyną?)

Nawet gdy dołączałem .a (a nawet .lib) to też się czepiał

komentarz 23 listopada 2017 przez j23 Mędrzec (194,920 p.)

Sprawdziłem. Wprawdzie wersję 32-bitową, bo chwilowo nie mam dojścia do komputera 64-bitowego z C::B, ale nie sądzę, żeby to był jakiś istotny czynnik. Szablon aplikacji gtk+ kompiluje się i uruchamia bez problemu.

 

Czy przypadkiem nie kompilujesz w 32-bitach? (w cmd wpisz g++ -v i zobacz, jaką wartość ma --with-arch).

komentarz 23 listopada 2017 przez 1SnajpeR7 Użytkownik (930 p.)

Wykonałem coś takiego w konsoli (nie wiem czy to o to chodziło)

C:\Users\User>"C:\Program Files (x86)\CodeBlocks\MinGW\bin\g++.exe" -v
Using built-in specs.
COLLECT_GCC=C:\Program Files (x86)\CodeBlocks\MinGW\bin\g++.exe
COLLECT_LTO_WRAPPER=C:/Program\ Files\ (x86)/CodeBlocks/MinGW/bin/../libexec/gcc/mingw32/4.9.2/lto-wrapper.exe
Target: mingw32
Configured with: ../../../src/gcc-4.9.2/configure --build=mingw32 --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-libgomp --enable-lto --enable-graphite --enable-libstdcxx-debug --enable-threads=posix --enable-version-specific-runtime-libs --enable-fully-dynamic-string --enable-libstdcxx-threads --enable-libstdcxx-time --with-gnu-ld --disable-werror --disable-nls --disable-win32-registry --disable-symvers --enable-cxx-flags='-fno-function-sections -fno-data-sections -DWINPTHREAD_STATIC' --prefix=/mingw32tdm --with-local-prefix=/mingw32tdm --with-pkgversion=tdm-1 --enable-sjlj-exceptions --with-bugurl=http://tdm-gcc.tdragon.net/bugs
Thread model: posix
gcc version 4.9.2 (tdm-1)

Ale --with-arch to nie widzę (chociaż podejrzewam że jednak to 32-bitowa po MinGW32)

komentarz 23 listopada 2017 przez j23 Mędrzec (194,920 p.)

I wszystko jasne. Stąd ściągnij MinGW -> MinGW-w64-x86_64-posix-seh

 

Jak chcesz mieć rozwiązanie bardziej linux-like, użyj MSYS2.

 

komentarz 25 listopada 2017 przez 1SnajpeR7 Użytkownik (930 p.)
Ściągnąłem jednak 32 bitowego bundla i hasa. Dzięki

Podobne pytania

+1 głos
1 odpowiedź 153 wizyt
pytanie zadane 28 marca 2018 w C i C++ przez Kacper Sas Dyskutant (8,460 p.)
0 głosów
0 odpowiedzi 204 wizyt
pytanie zadane 11 stycznia 2021 w Inne języki przez overcq Pasjonat (21,690 p.)
0 głosów
0 odpowiedzi 248 wizyt
pytanie zadane 16 marca 2018 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...