Also ich versuche, meine eigene Bibliothek in C++ zu erstellen und in einem anderen Projekt zu verwenden. Bis jetzt funktioniert es mit Beispielcode, aber ich muss andere Bibliotheken in meiner eigenen Bibliothek einschließen. Also das Problem ist, dass, wenn ich die Header-Dateien aus meiner Bibliothek, die Include-Pfade in den Header-Dateien sind durcheinander gebracht. Eine einfache Lösung wäre, die Suchverzeichnisse hinzuzufügen, aber ich denke nicht, das ist, wie es soll gelöst werden.C++ Bibliothek mit verschachtelten Includes
Beispielcode - Bibliothek Header-Datei:
#include <GL/glew.h>
#include <GLFW/glfw3.h>
int test();
Die Quelldatei:
#include "sample.h"
int test() { return 20; }
nun das Projekt, in dem ich die Probe
#include <sample.h>
int main() { int a = test(); }
Das Problem enthalten sein sollen ist , dass das Include den Code von sample.h direkt in die main.cpp und die Suchverzeichnisse für das ot kopiert sie schließt aus sample.h nicht mehr definiert
Wow Dank, das ist genau das, was ich suchte. Nur noch eine Sache: Wenn ich ein Projekt anlege, das mit meiner engine-Bibliothek verlinkt, muss ich auch mit allen anderen Bibliotheken verlinken (glew32d, opengl32 etc.). Gibt es eine Lösung, wo diese automatisch verknüpft werden? –
Hmm, gute Frage. Ich hatte das selbe Problem selbst und verbinde mich einfach mit den Abhängigkeiten. Im Fall von etwas Open Source wie glew könnte man einfach seine Quelle in die Bibliothek aufnehmen und das Ganze in eins zusammenbauen (obwohl das gegen ihre Lizenz sein könnte, habe ich nicht überprüft). Das ist für opengl32 nicht möglich, da die Quelle nicht verfügbar ist. Vielleicht werfen Sie einen Blick auf http://stackoverflow.com/questions/5445023/c-can-you-build-one-static-library-intoan-other - obwohl der allgemeine Konsens da drüben scheint, gegen die Abhängigkeiten zu verlinken Gut. – jtedit