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

GTK+ problem przy instalacji

VPS Starter Arubacloud
0 głosów
264 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ź 149 wizyt
pytanie zadane 28 marca 2018 w C i C++ przez Kacper Sas Dyskutant (8,460 p.)
0 głosów
0 odpowiedzi 203 wizyt
pytanie zadane 11 stycznia 2021 w Inne języki przez overcq Pasjonat (21,540 p.)
0 głosów
0 odpowiedzi 245 wizyt
pytanie zadane 16 marca 2018 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)

92,454 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...