GTKmm code::blocks

Z
  • 10 Kov '13

Sveiki,
nusprendžiau pasimokyti GTKmm naudojant Code::Blocks. Viską instaliavau per Ubuntų programų centrą.
Ubuntu 12.10 64BIT
libgtkmm-3.0-dev
codeblocks 10.05-2.1

Nustatimus nustačiau pagal šia instrukcija http://danielj.se/2011/11/20/how-to-com ... odeblocks/

Bet vis tiek gaunu klaidos pranešimą: "fatal error: gtkmm.h: Toks failas ar aplankas neegzistuoja"

Kiek ieškojau internete visi pateikia tokius pat nurodimus kaip ir ankstesnėje nuorodoje.

Kompiliuojant terminale su šia komandą
g++ simple.cpp -o simple pkg-config gtkmm-3.0 --cflags --libs
viskas veikia ir susikompiliuoja.

T
Techtronic
Mindaugas N.
  • 10 Kov '13

Darai keleta klaidu. Pirma bloga IDE ir antra GTKmm.

Parasyk sia komanda terminale:

pkg-config gtkmm-3.0 --cflags --libs

Ir nustatyk tinkamai savo MakeFile.

Kaip pvz:

CC           = g++
CFLAGS     = -c -Wall
LDFLAGS    =

SOURCES    = foo.cpp
OBJECTS    = $(SOURCES:.cpp=.o)

EXECUTABLE = foo

CFLAGS     += `pkg-config gtkmm-3.0 --cflags`
LDFLAGS    += `pkg-config gtkmm-3.0 --libs`


all: $(SOURCES) $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS)
    $(CC) $(OBJECTS) -o $@ $(LDFLAGS) 

.cpp.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    rm $(OBJECTS) $(EXECUTABLE)

Patarciau nustatyti ir -Wpedantic
http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
Gal dar ir gdb...
http://gcc.gnu.org/onlinedocs/gcc/Debug ... tions.html
RTFM

Z
  • 10 Kov '13

Ačiū už atsakimą.
Gal gali detaliau paaiškinti ką turi omenyje sakydamas "Pirma bloga IDE ir antra GTKmm."

Įrašius nurodyta komandą terminale gaunu šita rezultatą

-pthread
-I/usr/include/gtkmm-3.0
-I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include
-I/usr/include/atkmm-1.6 -I/usr/include/giomm-2.4
-I/usr/lib/x86_64-linux-gnu/giomm-2.4/include
-I/usr/include/pangomm-1.4
-I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include
-I/usr/include/gtk-3.0
-I/usr/include/cairomm-1.0
-I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include
-I/usr/include/gdk-pixbuf-2.0
-I/usr/include/gtk-3.0/unix-print
-I/usr/include/gdkmm-3.0
-I/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include
-I/usr/include/atk-1.0
-I/usr/include/glibmm-2.4
-I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include
-I/usr/include/glib-2.0
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include
-I/usr/include/sigc++-2.0
-I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include
-I/usr/include/pango-1.0
-I/usr/include/cairo
-I/usr/include/pixman-1
-I/usr/include/freetype2
-I/usr/include/libpng12
-I/usr/include/at-spi2-atk/2.0
-I/usr/include/gio-unix-2.0/
-lgtkmm-3.0
-latkmm-1.6
-lgdkmm-3.0
-lgiomm-2.4
-lpangomm-1.4
-lgtk-3
-lglibmm-2.4
-lcairomm-1.0
-lgdk-3
-latk-1.0
-lgio-2.0
-lpangocairo-1.0
-lgdk_pixbuf-2.0
-lcairo-gobject
-lpango-1.0
-lcairo
-lsigc-2.0
-lgobject-2.0
-lglib-2.0

Išskirčiau į atskiras eilutes, kad butu lengviau atskirti.

Aš naudoju Code::Blocks kad ne reikėtu pačiam daryti makefile.

T
Techtronic
Mindaugas N.
  • 10 Kov '13

Ta komanda parodo tau ko reikia tavo sukurtai programai sukompiliuoti.

Del bloga IDE tai todel, kad neturetum tokiu problemu kaip dabar
Ir GTKmm, kodel butent ji ?
Pastaruoju metu pastebejau vis daugiau pereinanciu i Qt (net ir Unity), tai modernesnis C++ frameworkas, kuris turi savo normalu IDE. Del makefile taip pat nereikia sukti galvos, nes yra qmake (.pro).
Aisku tai tik NOTE mano, naudok tai kas tau patinka.

Z
  • 10 Kov '13

Visos bibliotekos pas mane yra suinstaliuotos, nes per komandinę eilute viskas susikompiliuoja sėkmingai. Tik Code::Blocks streikuoja. Regis neranda kelių į visas bibliotekas.

Code::Blocks naudojau kai mokiausi OpenGL (FreeGLUT) ir viskas veikė. Tai nusprendžiau ir su GTKmm naudoti ją.

Šiuo metu nėra didelio skirtumo ar naudoti QT ar GTK. Tačiau QT LGPL turi daugiau apribojimų.