2016-04-10 9 views
2

Ich habe zwei VS2013-Lösungen A und B. Meine Lösung B, die mehrere Projekte enthält, wurde ursprünglich als ausführbare Datei kompiliert, aber ich möchte ihre Funktionen in Lösung A verwenden, also änderte ich ihre Kompilierung in eine .lib-Datei.C++ von einer anderen Lösung

Ich habe die .lib-Datei von B zu meiner Lösung A hinzugefügt, aber ich muss immer noch die Header aufnehmen. Wenn ich versuche, sie so umfassen:

#include <SolutionB/ProjectB1/header1.h> 

header1.h

#include "globals.h" 

globals.h ist offensichtlich in der/SolutionB/ProjectB1/Pfad zu schließen versucht und kann daher nicht durch gefunden werden Lösung A. Was ist der einfachste Weg, um SolutionA die richtigen Header zu finden? Da SolutionB ziemlich groß ist, möchte ich es nicht in den SolutionA-Ordner kopieren (was auch die .lib-Datei überflüssig machen würde), auch möchte ich nicht jede #include-Anweisung in SolutionB umschreiben. Gibt es eine Möglichkeit, das zu tun?

Vielen Dank

+1

anfügen, warum nicht einfach den relativen Include-Pfad zu den Kopfzeilen in A zu den relevanten Projekten von Lösung B hinzufügen? – Christophe

+0

@Christophe ich verstehe nicht genau, wie ich das tun soll? Meinst du, ich sollte jeden Pfad/SolutionB/ProjectB */"Include-Verzeichnisse" unter VC++ - Verzeichnisse für mein Projekt hinzufügen? Sind Verzeichnisse nicht nur für Includes mit '<>' und nicht mit '' '' enthalten? Würde es funktionieren, wenn ich die Verzeichnisse zu "Source Directories" hinzufügen würde? – infect

+0

_ "Sind Include-Verzeichnisse nur für Includes mit '<>' und nicht mit '" "'?" _ Ja, und das ist ein Grund, warum du '<>' verwenden solltest, nicht '" ". –

Antwort

1

#include sucht durch eine Reihe von Verzeichnissen für den angegebenen Header. Lösung B ist nicht Teil dieser Verzeichnisliste, daher kann #include die Header nicht finden.

In Visual Studio 2015 (sollte für alle anderen Versionen anwendbar):

  1. Zum Projekt -> ... Immobilien
  2. Zum Konfigurationseigenschaften -> VC++ Verzeichnisse
  3. Unter Include Directories Sie können den Pfad zu den Dateien von Lösung B ((some other path);your\path\to\solution\b)