gtk_foobarwindow.hpp
代码: 全选
#ifndef _GTK_FOOBAR_WINDOW_HPP_
#define _GTK_FOOBAR_WINDOW_HPP_
#include <libglademm.h>
#include <gtkmm.h>
class gtk_foobarWindow : public Gtk::Window
{
public:
gtk_foobarWindow(BaseObjectType* cobject,
const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml);
virtual ~gtk_foobarWindow();
protected:
};
#endif // _GTK_FOOBAR_WINDOW_HPP_
代码: 全选
#include "gtk_foobarwindow.hpp"
gtk_foobarWindow::gtk_foobarWindow(
BaseObjectType* base_object,
const Glib::RefPtr<Gnome::Glade::Xml>& glade_xml)
: Gtk::Window(base_object)
{
}
gtk_foobarWindow::~gtk_foobarWindow()
{
}
代码: 全选
#include <libglademm/xml.h>
#include <gtkmm.h>
#include <iostream>
#include "gtk_foobarwindow.hpp"
#ifdef ENABLE_NLS
# include <libintl.h>
#endif
/* For testing propose use the local (not installed) glade file */
/* #define GLADE_FILE PACKAGE_DATA_DIR"/gtk_foobar/glade/gtk_foobar.glade" */
#define GLADE_FILE "gtk_foobar.glade"
int
main (int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
//Load the Glade file and instiate its widgets:
Glib::RefPtr<Gnome::Glade::Xml> refXml;
try
{
refXml = Gnome::Glade::Xml::create(GLADE_FILE);
}
catch(const Gnome::Glade::XmlError& ex)
{
std::cerr << ex.what() << std::endl;
return 1;
}
gtk_foobarWindow* main_win = 0;
refXml->get_widget_derived("main_window",main_win);
if (main_win)
{
kit.run(*main_win);
}
return 0;
}
老是编译不过,不知道谁有同样的问题,学习GTKMM真有压力,资料少,有没有哪个致力学习这个东西,结伴同行!!Building in directory: /home/isotope/文档/Anjuta_Project/gtk-foobar/src
make
g++ -DHAVE_CONFIG_H -I. -I.. -DPACKAGE_LOCALE_DIR=\""/usr/local/share/locale"\" -DPACKAGE_SRC_DIR=\""."\" -DPACKAGE_DATA_DIR=\""/usr/local/share"\" -D_REENTRANT -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/include/atkmm-1.6 -I/usr/include/gtk-2.0 -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/lib/gtk-2.0/include -I/usr/include/cairomm-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/atk-1.0 -I/usr/include/libglademm-2.4 -I/usr/lib/libglademm-2.4/include -I/usr/include/libglade-2.0 -I/usr/include/libxml2 -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cc
mv -f .deps/main.Tpo .deps/main.Po
g++ -g -O2 -o gtk_foobar main.o -lglademm-2.4 -lgtkmm-2.4 -lglade-2.0 -lgiomm-2.4 -lgdkmm-2.4 -latkmm-1.6 -lpangomm-1.4 -lcairomm-1.0 -lglibmm-2.4 -lsigc-2.0 -lgtk-x11-2.0 -lxml2 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
main.o: In function `gtk_foobarWindow* Gnome::Glade::Xml::get_widget_derived<gtk_foobarWindow>(Glib::ustring const&, gtk_foobarWindow*&)':
/usr/include/libglademm-2.4/libglademm/xml.h:291: undefined reference to `typeinfo for gtk_foobarWindow'
/usr/include/libglademm-2.4/libglademm/xml.h:307: undefined reference to `gtk_foobarWindow::gtk_foobarWindow(_GtkWindow*, Glib::RefPtr<Gnome::Glade::Xml> const&)'
collect2: ld 返回 1
make: *** [gtk_foobar] 错误 1
已完成 ... 失败
总共耗时:0 秒