2017-06-14 2 views
2

Ich versuche, ein Autotools-Projekt mit Yocto ADT Plugin und Eclipse Luna zu bauen. Ich muss einige externe Bibliotheken in das Projekt einbeziehen und die Boost-Bibliotheken genauer beschreiben. Betrachten wir das einfachste Szenario: Nur-Header-Bibliothek. Ich sollte #include in mein Projekt aufnehmen können. Ich versuche, einen Test-Code zu kompilieren:Autotools Projekt und externe Bibliotheken auf Eclipse

#include <iostream> 
#include <boost/lambda/lambda.hpp> 

using namespace std; 

int main(void) { 
     cout << "Hello World" << endl; /* prints Hello World */ 
     return 0; 
} 

aber ich bin immer die Fehlermeldung: "fatale Fehler: boost/Lambda/lambda.hpp: Keine solche Datei oder das Verzeichnis"

Natürlich Ich muss dem Compiler sagen, wo die Bibliothek zu finden ist. Ich habe versucht, es auf verschiedene Arten zu tun, aber nichts ist gelungen. Um einige Beispiele zu machen: Projekt -> Eigenschaften -> C/C++ Allgemein -> Pfad und Symbole Es angegebene ich den Pfad für heruntergeladene Bibliotheken und für kompilierte Bibliotheken (in diesem Fall nicht notwendig, aber für Allgemeinheit hinzugefügt):

enter image description here

Das Include wird korrekt im Projekt-Explorer gemeldet, aber der Fehler ist weiterhin vorhanden.

Dann habe ich versucht auf Projekt zu arbeiten -> Eigenschaften -> C/C++ Allgemein -> Preprocessor umfassen:

enter image description here

immer noch die gleichen Fehler.

habe ich versucht, dann sind die Autotools Konfiguration der Option -I fügt hinzu:

enter image description here

Natürlich ist es entweder nicht erfolgreich war. Nach jedem fehlgeschlagenen Build-Versuch führe ich ein "Clear Project" und "Reconfigure Project" aus, um sicher zu sein, dass alles von vorne beginnt.

Das Merkwürdige ist, dass, wenn ich die Anhebung/Lambda/lambda.hpp im Editor auswählen und ich "Open-Deklaration" die Datei findet:

enter image description here

An diesem Punkt I don‘ Ich weiß was zu tun ist, klar ich vermisse etwas.

Konnten Sie mir möglicherweise helfen?

Zusätzliche Anmerkung: Wenn ich ein C++ ausführbares Projekt mit GCC starte, wird die Bibliothek erkannt und ich habe keine Probleme. Also ich denke, das Problem ist innerhalb der Autotools oder Yocto ADT. Ich habe sogar die Boost-Bibliotheken zu meinem Yocto-Build und SDK hinzugefügt, aber es funktioniert nicht.

Antwort

1

Ich kompilierte erfolgreich das Hinzufügen zu der /src/Makefile.am das Include zu den Bibliotheken.

enter image description here

Noch verstehe ich nicht, warum dies ändert die Autotools-Flag konfigurieren unterscheidet.

Wenn jemand eine Antwort hat, bitte erklären Sie sich.

+0

Ich vermute, das war bis Autotools, weil Projekt von Makefile gebaut wird. Also, Ihre Frage ist, warum Eclipse-Include-Konfiguration keinen Einfluss auf Makefile-Inhalte hat? – Roman

+0

Exacly, warum Eclipse Autotool Einstellungen die Makefile.am in meinem Quellordner nicht beeinflussen – Podarce

+0

3 Jahre vergangen, haben Sie nicht zufällig herausgefunden? – Roman

Verwandte Themen