g++ "-l" option
-
Hey,
was macht der -l Aufruf genau? Ich habe aktuell das Problem das ich über makefile probiere Unit-testing zu machen ( ich benutze dafür die Boost Bibliothek), allerdings funktioniert die makefile die perfekt auf meinem anderen Computer funktioniert hat, hier überhuaptnicht und ich versteh nicht wieso.
Die Fehlermeldung ist:
aussenminister@Aussenminister:/media/Proggen/DiplomacyProjekt/v.0.0.0.1.0.0/Model$ make g++ -o Test_Suite_Model_Troop Model_Troop_Testing.cpp Model_Troop.o Model_Area_Basic.o Model_Area.o -l unit_test_framework /usr/bin/ld: cannot find -lunit_test_framework collect2: ld returned 1 exit status make: *** [Test_Suite_Model_Troop] Fehler 1Also, der findet unit_test_framework net, was verständlich ist, es gibt das nur als .hpp. Aber was mich eben wundert das es auf meinem anderen Computer geklappt hat, da ich auch dort über die Synaptic (benutze Ubuntu) boost installiert habe.
Vielen Danke für eure Hilfe

PS: Wo wir schon dabei sind, gibt es einen weg wie ich Boost::Test precompilieren kann, sodass ich dynamisch linken kann, die Compilezeiten sind grausam (ca. 10sec), wie sag ich das dann auch dem Compiler?
-
-lirgendwasbenutzt die Bibliotheklibirgendwasbeim Linken.
-
Danke, schonmal ein bischen. Aber wie definiert sich der Bibliothekbegriff allgemein, wie kann man eine Bibliothek erläutern, bzw "greifbar" verständlich machen?
-
Lies zuerst am Besten den Artikel bei Wikipedia. Wenn dann noch etwas unklar sein sollte, frag noch mal nach.
-
danke fürs "googlen" des Wiki Artikels :).
Ich habe ein Fragen zu dem Artikel:
1.Was sagt mir diese Tabelle im Unterpunkt "Bibliotheken in Verschiedenen Programmiersprachen"
2.Woran erkenn ich nun ob ich eine Bibliothek von etwas habe bzw was für eine Art von Bibliothek das nun ist. (Kann eine .hpp eine QTBibliothek sein?)
3."Linke" ich Quelltextbibliotheken genauso wie statische oder dynamische Bibliotheken?
4.Ist es ein Compile-zeit Unterschied ob eine Bibliothek dynamisch oder statisch gelinkt wird?
Meine letzte Frage ist weniger auf den Wikiartikel bezogen als auf boost.
Kennt einer ein gutes und verständliches Tutorial für Boost::Test, die Doc die es auf der HP gibt ist, finde ich, unverständlich und ich habe schon mehrere Ansätze unternommen damit zu Arbeiten aber musste letzendlich aufgeben oder auf andere ausweichen.
Danke nochmals für eure schnelle Hilfe :xmas1:
-
Jud4s schrieb:
1.Was sagt mir diese Tabelle im Unterpunkt "Bibliotheken in Verschiedenen Programmiersprachen"
Wertlose Information zum Umfang der Standardbibliothek in verschiedenen Sprachen die dort meiner Meinung nach nichts verloren hat.
2.Woran erkenn ich nun ob ich eine Bibliothek von etwas habe bzw was für eine Art von Bibliothek das nun ist. (Kann eine .hpp eine QTBibliothek sein?)
Nein, eine .hpp ist bestimmt keine QTBibliothek, die ganze Frage macht keinen Sinn. Bibliotheken sind Dateien auf deinem Computer in dem Objektcode (=fertig übersetzter Programmcode) steht. Typische Endungen wären .dll, .so, oder .a. Lies dir mal den englischen Artikel in der wikipedia durch, dieser bietet (wie immer
) viel mehr und viel bessere Informationen.3."Linke" ich Quelltextbibliotheken genauso wie statische oder dynamische Bibliotheken?
Das wird immer wirrer. Was ist eine Quelltextbibliothek? Meinst du Header-only-Bibliotheken wie große Teile von boost? Die werden eigentlich gar nicht gelinkt sondern direkt ins Programm eingebaut. Das sind aber auch keine Bibliotheken im klassischen Sinn.
4.Ist es ein Compile-zeit Unterschied ob eine Bibliothek dynamisch oder statisch gelinkt wird?
Natürlich nicht. Compilieren und Linken sind unterschiedliche Vorgänge.
-
Was das wirre angeht, srry, aber ich bin noch relativ unerfahren und Arbeite mich selbständig in diese Themengebiete ein und es kann gut sein das ich da manche Bezeihungen nicht immer ganz richtig erkenne.
Was die QTBibliothek angeht, davon sprach das Wiki und ich habe das probiert auf mein Wissen zu übertragen.
Wenn man .hpp einfach nur einbindet, wie kommt es dann das ich bei boost::unit_test die test_suite mit boost_unit_test_framework/unit_test_framework linken muss?
Das ist so mein Hauptproblem bei meinem Aktuellen Arbeiten mit Boost, sie erklären am anfang was man machen muss um einen bestimmten bibliothekstypen zu erzeugen (wobei auch das ziemlich wirr ist), und stellen dann keine relation dazu her was man für bestimmte vorgehensweisen braucht.Was nocht hinzu kommt ist das einem am Anfang empfohlen wird sich das nach Möglichkeit über ein OS-Spezifisches Paket zu installieren, was ich gemacht habe, und nun habe ich diesen linker Error und weiß nicht ob es an meiner inkompetenz liegt oder an der Synaptic :P, aber das ist eine relativ spezielle Frage. Könntet ihr mich da an ein gutes Forum weiter leiten was sich speziell mit C++ und Boost beschäftigt?