On 9/20/06, Michael Ott <[EMAIL PROTECTED]> wrote:
> Hi!
>
> I have a small problem with compiling an application using glademm.
> Here is the error message:
> g++ -c -pipe -Wall -W -O2 -DDEBUG `pkg-config --cflags libglade-2.0 gtkmm-2.4
> gnet-2.0 libglademm-2.4` -o ampavi_server.o ampavi_server.cc
> gcc -ldebugging `pkg-config --libs libglade-2.0 gtk+-2.0 gnet-2.0 gtkmm-2.4`
> -o ampavi_server ampavi_server.o main.o
> ampavi_server.o: In function `CAmpaviServer::CAmpaviServer()':
> ampavi_server.cc:(.text+0x3d2): undefined reference to
> `Gnome::Glade::Xml::create(std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&, Glib::ustring const&, Glib::ustring const&)'
> ampavi_server.o: In function `CAmpaviServer::CAmpaviServer()':
> ampavi_server.cc:(.text+0x6f0): undefined reference to
> `Gnome::Glade::Xml::create(std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&, Glib::ustring const&, Glib::ustring const&)'
> ampavi_server.o:(.gcc_except_table+0xd8): undefined reference to `typeinfo
> for Gnome::Glade::XmlError'
> ampavi_server.o:(.gcc_except_table+0x14c): undefined reference to `typeinfo
> for Gnome::Glade::XmlError'
> collect2: ld returned 1 exit status
> make: *** [ampavi_server] Error 1
>
> I hope that anyone can help me. The glade file work in an application
> written in C
>
> Here is my source code:
> main.cc:
> #include <iostream>
> #include "ampavi_server.h"
>
> int main(int argc, char **argv) {
>
> Gtk::Main kit(argc, argv);
> CAmpaviServer ampavi_server;
>
> Gtk::Main::run(ampavi_server);
>
> return(EXIT_SUCCESS);
> }
>
> ampavi_server.h
> #ifndef ___AMPAVI_SERVER_H__
> #define ___AMPAVI_SERVER_H__
>
> #include <gtkmm.h>
> #include <libglademm.h>
>
> class CAmpaviServer:public Gtk::Window {
>
> private:
> Glib::RefPtr < Gnome::Glade::Xml > xml;
> int server;
>
> public:
> CAmpaviServer();
> virtual ~ CAmpaviServer();
>
> };
>
> ampavi_server.cc:
> #include <iostream>
> #include <libglademm/xml.h>
> #include "ampavi_server.h"
>
> CAmpaviServer::CAmpaviServer():server(SERVER_DISCONNECT)
> {
>
> try {
> xml =
> Gnome::Glade::Xml::create("ampavi_server.xml",
>
> "ampavi_server_window", NULL);
> }
> catch(const Gnome::Glade::XmlError & ex) {
> std::cerr << ex.what() << std::endl;
>
> return;
> }
> }
>
> CAmpaviServer::~CAmpaviServer()
> {
> return;
> }
>
> Makefile:
> CC = gcc
> CXX = g++
> CFLAGS = -pipe -Wall -W -O2 -DDEBUG `pkg-config --cflags libglade-2.0
> gtk+-2.0 gnet-2.0`
> CXXFLAGS= -pipe -Wall -W -O2 -DDEBUG `pkg-config --cflags libglade-2.0
> gtkmm-2.4 gnet-2.0 libglademm-2.4`
> LINK = gcc
> LFLAGS = `pkg-config --libs libglade-2.0 gtk+-2.0 gnet-2.0 gtkmm-2.4`
>
> TAR = tar -cf
> GZIP = gzip -9f
>
> # Files gnet
>
> HEADERS = ampavi_server.h
> SOURCES = ampavi_server.cc main.cc
> OBJECTS = ampavi_server.o main.o
> INTERFACES =
> DIST =
> TARGET = ampavi_server
> INTERFACE_DECL_PATH = .
>
> # Implicit rules
>
> .SUFFIXES: .cpp .cxx .cc .C .c
>
> .cpp.o:
> $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
>
> .cxx.o:
> $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
>
> .cc.o:
> $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
>
> .C.o:
> $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $<
>
> .c.o:
> $(CC) -c $(CFLAGS) $(INCPATH) -o $@ $<
>
> # Build rules
>
> all: $(TARGET)
>
> $(TARGET): $(OBJECTS)
> $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(LIBS)
>
> clean:
> -rm -f $(OBJECTS) $(TARGET)
> -rm -f *~ core
I don't know if it's just a typo, but you don't seem to be linking
libglademm (i.e. it's not in LFLAGS)
--
jonner
_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list