2017-03-21 1 views
0

Ich versuche, LEDA-6.3-Bibliothek in Omnet ++ 4.2.2 zu verwenden. Ich installierte LEDA und führte ein einfaches Programm aus, das es ohne Probleme vom Ubuntu-Terminal verwendete. Wenn ich den Code jedoch an Omnet ++ portiere, schlägt er fehl. Unten ist mein einfacher Code.Wie wird die LEDA Graph Bibliothek in Omnet ++ Projekten verwendet?

#include <LEDA/graph/graph.h> 
    #include <omnetpp.h> 

    class cLeda : public cSimpleModule 
    { 
     protected: 
     virtual void initialize(); 
    }; 

    Define_Module(cLeda); 

    void cLeda::initialize() 
    { 
     EV << "TestLEDA"; 
     graph g; 
     g.read("nsfnet.txt"); 
     EV << "No. nodes = " <<g.number_of_nodes() << endl; 
    } 

ich konfiguriert für LEDA Pfade für Compiler und Linker wie folgt: Projekt -> Eigenschaften -> Wählen Sie C/C++ Allgemein -> Pfad und Symbole und hinzugefügt:

  • Für Bibliothekspfade:/home/grsst/LEDA-6.3/incl
  • Für Bibliotheken: /home/grsst/LEDA-6.3/libleda.a (Ich habe nicht libleda.o hinzugefügt, da es nicht funktioniert auch mit Ubuntu-Befehlszeile)
  • Für Bibliothekspfade: /home/grsst/LEDA-6.3

Wenn ich kompilieren, bekam die ich Fehler wie folgt:

Description Resource Path Location Type 
    make: *** [all] Error 2 TestLeda   C/C++ Problem 
    make[1]: *** [../out/gcc-debug/src/TestLeda] Error 1 TestLeda   C/C++ Problem 
    undefined reference to `leda::graph::~graph()' cLeda.cc /TestLeda/src line 26 C/C++ Problem 
    undefined reference to `leda::graph::graph()' cLeda.cc /TestLeda/src line 24 C/C++ Problem 
    undefined reference to `leda::graph::read(leda::string)' cLeda.cc /TestLeda/src line 25 C/C++ Problem 
    undefined reference to `leda::memory_manager_init::~memory_manager_init()' TestLeda  line 145, external    location: /home/grsst/LEDA-6.3/incl/LEDA/system/memory_std.h C/C++ Problem 
    undefined reference to `leda::memory_manager_init::memory_manager_init()' TestLeda  line 145, external  location: /home/grsst/LEDA-6.3/incl/LEDA/system/memory_std.h C/C++ Problem 
    undefined reference to `leda::memory_manager::deallocate_bytes(void*, unsigned int)' TestLeda  line 52, external location: /home/grsst/LEDA-6.3/incl/LEDA/internal/handle_types.h C/C++ Problem 
    undefined reference to `leda::std_memory_mgr' TestLeda  line 52, external  location: /home/grsst/LEDA-6.3/incl/LEDA/internal/handle_types.h C/C++ Problem 
    undefined reference to `leda::string::string(char const*)' cLeda.cc /TestLeda/src line 25 C/C++ Problem 

Ich schätze jede mögliche Idee, mir zu helfen es funktioniert. Tausend Dank.

Antwort

0

OMNeT++ Projekt verwendet in der Regel Makefile. Versuchen Sie LEDA Bibliotheken als Makefrag hinzuzufügen. Gehen Sie zu Project Properties, wählen Sie OMNeT++ | Makemake | Wählen Sie src | Options | Custom | Makefrag und schreiben:

INCLUDE_PATH += -I/home/grsst/LEDA-6.3/incl 
    LIBS += -L/home/grsst/LEDA-6.3 -lleda 
+0

Es funktioniert jetzt, eine Million Dank Jerzy! –

+0

Gern geschehen. Können Sie die Antwort als Lösung Ihrer Frage markieren? Es wird für andere hilfreich sein. –

+0

Hallo Jerzy, ich möchte meine Frage als gelöst markieren, weiß nicht wie, kannst du mir bitte sagen, wie das geht? Vielen Dank. –

Verwandte Themen