Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » gcc & gmodule

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.08.2005, 21:59 Uhr
imhotep
followed the white rabbit


Hallo,

ich will ein kleines Testprogramm schreiben für glib und c++.
Nur leider komm ich mit den gcc flags nicht ganz klar
Er kompiliert zwar ohne Probleme, aber wenn ich mein Programm aufrufe bekomm ich immer die Fehlermeldung


Code:
`_fabrik': ./nummer1.so: undefined symbol: _fabrik


prog.cpp

C++:
#include <stdlib.h>
#include <stdio.h>
#include <glib.h>
#include <gmodule.h>
#include "basis.hpp"

Produkt * finder(){
  fabrik_p fabrik;
  GModule *mod_handler;
  
  mod_handler = g_module_open("./nummer1.so", G_MODULE_BIND_LAZY);
  if (!mod_handler) {
    puts("Fehler beim laden");
    printf("%s\n", g_module_error());
    exit(0);
  }
    
  if (!g_module_symbol(mod_handler, "_fabrik", (gpointer*)&fabrik)) {
    puts("Fehler beim laden 2");
    fprintf(stderr, "%s\n", g_module_error());
    return NULL;
  } else {
    return fabrik();
  }
  return NULL;
}

int main(int argc, char** argv) {
  Produkt * prod;
  prod = finder();
  if (prod == NULL) {
    exit(1);
  }
  printf("schnittstelle: %d\n", prod->schnittstelle());
  exit(0);
}



basis.hpp

C++:
#ifndef BASIS_HPP
#define BASIS_HPP

class Produkt {
  public:
    virtual int schnittstelle(void);
};

typedef Produkt* (*fabrik_p) (void);

#endif



nummer1.cpp

C++:
#include "basis.hpp"
//#include <gmodule.h>

class nummer1 : public Produkt {
  public:
    int schnittstelle(void);
};

extern "C" {
  Produkt* _fabrik() {
    return new nummer1();
  }
}



Compilier mit den zwei Befehlen


BASH:

$ g++ `pkg-config --cflags --libs glib-2.0 gmodule-2.0` -o prog prog.cpp
$ gcc -shared -fPIC -Wl,-soname -g -o nummer1.so nummer1.cpp



Hat einer ne Ahnung was ich falschmache bzw. vergesse.

Danke.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: