• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Codeblocks findet den header nicht...

jonny123

Member
Hallo alle zusammen,
ich versuche mittels codeblocks ein OGRE Programm zu kompilieren, ...geht nicht er sagt mir das die header Datei fehlt, habe den header sogar ins Projekt mit einbezogen. Habe ein Bild hochgeladen damit man genau sehen kann was ich meine.

Wer kann mir sagen warum das nicht funktioniert? :-/





http://s7.directupload.net/images/140718/8nsk4y4x.jpg

Gruße Jonny123
 
A

Anonymous

Gast
Natürlich kann eine IDE auch kompilieren, aber IDE ist nicht dazu erfunden worden damit ein Programm zu kompilieren sondern um das Programm zu entwickeln/weiterzuentwickeln und zu debuggen, dabei muss sie zwar auch ständig kompilieren, und das auch noch mit den unterschiedlichsten Optionen und dazu noch mit einer Menge von anderen Tools zusammenarbeiten, und beim Kompilieren diesen Infos zur Verfügung stellen, mit denen diese auch noch was anfangen können. ZB welcher Binärcode sich wo im Quellcode befindet, denn sonst könnte kein Debugger was mit dem Programm anfangen und man könnte eine aufgelaufenen Fehler gar nicht zu einer Programmzeile zuordnen.

Für das Kompilieren sind/ist ein Buildsystem notwendig. zB cmake, GNU Autotools, und und und und noch einige andere mehr. In der Regel liegen beim Quellcode die Konfiguratiosdateien für diese Tools bei, und damit lassen sich dann die Programme mit den Buildsystem (machmal jedefalls) auf jedem Rechner kompilieren.
Auch in die IDE müssen diese Konfigdateien des Buildsystems mit eingelesen werden, denn nur dann bekommt die IDE überhaupt erst einen Plan was sie wie mit dem Quellcode anfangen soll, was zusammen gehört was sich wo in welchem Verzeichnis befindet und wie die genauen Einstellungen für deinen Rechner vorgenommen werden müssen. Ohne diese Konfig einzulesen musst du schon ein Profi sein, um bei einem mittelgroßem Programm von Hand der IDE beizubringen was sie machen soll. Ohne diese Konfigs im Quellcode ist der Quellcode nur eine Sammlung von Programmcodedateien, die so ohne weiteres überhaupt nicht dazu gedacht ist von einem User kompiliert zu werden.
Die IDE muss also die Konfig lesen und in ihre meist eigene Konfiguration für ihr eigenes Buildsystem übersetzen können. Nur dann funktioniert auch die IDE mit diesem QuellCode und es sind alle Variablen für jeden einzelnen Kompileraufruf richtig gesetzt. Bei dir scheint das nicht der Fall zu sein, denn beim Kompileraufruf ist das Verzeichnis für die Headerdateien nicht oder nicht richtig gesetzt.

In den meisten IDEs hat man leider irgendwie vergessen das genau zu beschreiben wie man die einzelnen Build Konfigurationsdateien in die IDE reinbekommt, oder es ist eben sehr gut versteckt in der Doku. Die einzelnen IDEs überstützen verschiedene Buildsysteme unterschiedlich gut, manchmal automatisch und manchmal auch einige gar nicht. Besonders wenn man ungeübt ist oder eine unbekannte IDE vor sich hat, kann man damit durchaus mal Stunden und Tage verbringen, bis da was geht. Vielleicht auch ein Grund warum Entwickler oft an einer IDE hängen wie die Kletten und sie mit nichts davon zu überzeugen sind das es längst bessere gibt. Sie wissen genau wie sie da was schnell reinbekommen und zum laufen bringen. Ich komme mit codeblocks auch nicht klar und bin dort schon mehrfach an genau dieser Stelle gescheitert.

Die meisten Programmecodes haben aber in der Regel die Konfigurationen für mindestens ein Buildsystem mit dabei. In den README , INSTALL ...... Dateien sollte im Allgeimeinen auch stehen was da jeweils genau zu machen ist. zB. beim GNU Buildsystem ist es oft und im einfachsten Fall einfach der altbekannte Dreisatz "configure, make, make install".

Mit den Beschreibungen im Projektkode oder auf deren Webseite sollte ein etwas geübter User voraussgesetzt sonst ist alles was an Abhängigkeiten benötigt wird, auch installiert oder vorhanden ist, einen Code kompilieren können. Ob dann die Feineinstellungen auch passen, sei mal dahingestellt, das ist auch stark von der Komplexität eines Programmes oder Tools stark abhängig. Für einiges braucht man sehr viele Erfahrung, das bekommt Otto der Nomallinuxer nicht sauber hin. Und genau dafür gibt es Programmpakete und einen Haufen Leute die sich darum kümmern das die immer alle in aktuell und in Ordnung sind und problemlos mit dem Rest der jeweiligen Distribution zusammenarbeitet, also braucht Otto der Normallinuxer gar nicht selbst zu kompilieren.

robi
 
Oben