Re: Trying to build simple application on Windows
- From: Pascal Grodowski <pascal grodowski gmx de>
- To: Bruce Sherwood <Bruce_Sherwood ncsu edu>
- Cc: gtkmm-list gnome org
- Subject: Re: Trying to build simple application on Windows
- Date: Thu, 18 Oct 2007 00:10:17 +0200
helloworld: main.o helloworld.o
g++ -o helloworld main.o helloworld.o
You must provide the libs if you create the executable from object files.
Try:
helloworld: main.o helloworld.o
g++ -o helloworld main.o helloworld.o `pkg-config gtkmm-2.4 --cflags --libs`
instead of:
helloworld: main.o helloworld.o
g++ -o helloworld main.o helloworld.o
On Windows XP, I succeeded in installing gtk and gtkmm in MinGW (with
MSYS). And I succeeded in building and running the "Simple Example" in
Chapter 3 (Basics) of the useful gtkmm tutorial document. But I'm unable
to build the helloworld example.
Here is my simplistic makefile:
all: helloworld
clean:
rm main.o helloworld.o helloworld
helloworld: main.o helloworld.o
g++ -o helloworld main.o helloworld.o
main.o: main.cc helloworld.o
g++ -c main.cc `pkg-config gtkmm-2.4 --cflags --libs`
helloworld.o: helloworld.cc helloworld.h
g++ -c helloworld.cc `pkg-config gtkmm-2.4 --cflags --libs`
The output of the make (captured with make 1> makelog.txt 2>
makelog.txt) starts out like this:
g++.exe: -luuid: linker input file unused because linking nog++ -c
main.cc `pkg-config gtkmm-2.4 --cflags --libs`
g++ -o helloworld main.o helloworld.o
gdkmm-2.4: linker input file unused because linking not done
g++.exe: -latkmm-1.6: linker input file unused because linking not done
g++.exe: -lgtk-win32-2.0: linker input file unused because linking not done
g++.exe: -lpangomm-1.4: linker input file unused because linking not done
g++.exe: -lcairomm-1.0: linker input file unused because linking not done
g++.exe: -lglibmm-2.4: linker input file unused because linking not done
g++.exe: -lsigc-2.0: linker input file unused because linking not done
g++.exe: -lgdk-win32-2.0: linker input file unused because linking not done
After listing lots more "linker input file unused" statements, I see this:
main.o(.text+0x195):main.cc: undefined reference to
`Gtk::Main::Main(int&, char**&, bool)'
main.o(.text+0x1bf):main.cc: undefined reference to
`Gtk::Main::run(Gtk::Window&)'
main.o(.text+0x1e9):main.cc: undefined reference to `Gtk::Main::~Main()'
main.o(.text+0x260):main.cc: undefined reference to `Gtk::Main::~Main()'
helloworld.o(.text+0x15e):helloworld.cc: undefined reference to
`Gtk::Window::Window(Gtk::WindowType)'
helloworld.o(.text+0x1a8):helloworld.cc: undefined reference to
`Gtk::Button::Button()'
and so on for 87 kilobytes.
For further information, here is what pkg-config tells me about gtk-2.0:
-mms-bitfields -Ic:/MinGW/include/gtk-2.0 -Ic:/MinGW/lib/gtk-2.0/include
-Ic:/MinGW/include/atk-1.0 -Ic:/MinGW/include/cairo
-Ic:/MinGW/include/pango-1.0 -Ic:/MinGW/include/glib-2.0
-Ic:/MinGW/lib/glib-2.0/include -Ic:/MinGW/include/freetype2
And about gtkmm-2.4:
-mms-bitfields -Ic:/MinGW/include/gtkmm-2.4
-Ic:/MinGW/lib/gtkmm-2.4/include -Ic:/MinGW/include/glibmm-2.4
-Ic:/MinGW/lib/glibmm-2.4/include -Ic:/MinGW/include/gdkmm-2.4
-Ic:/MinGW/lib/gdkmm-2.4/include -Ic:/MinGW/include/pangomm-1.4
-Ic:/MinGW/include/atkmm-1.6 -Ic:/MinGW/include/gtk-2.0
-Ic:/MinGW/include/sigc++-2.0 -Ic:/MinGW/lib/sigc++-2.0/include
-Ic:/MinGW/include/glib-2.0 -Ic:/MinGW/lib/glib-2.0/include
-Ic:/MinGW/lib/gtk-2.0/include -Ic:/MinGW/include/cairomm-1.0
-Ic:/MinGW/include/pango-1.0 -Ic:/MinGW/include/cairo
-Ic:/MinGW/include/freetype2 -Ic:/MinGW/include/atk-1.0
I hope someone can spot whatever dumb mistake I'm making. Thanks!
Bruce Sherwood
_______________________________________________
gtkmm-list mailing list
gtkmm-list gnome org
http://mail.gnome.org/mailman/listinfo/gtkmm-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]