Frage

Ich werde versuchen, kurz zu erklären, was ich tun möchte:

Ein Projekt eine statische Bibliothek, die eine andere als depandency haben. Es produziert ein Projekt MyProject Verknüpfung auf MyLib1 Verknüpfung auf MyLib2 genannt. Hier ist die Kompilierung Reihenfolge:

  • MyLib2
  • MyLib1 (Verknüpfung zu MyLib2)
  • MyProject (Verknüpfung zu MyLib1)

Ich bin mit Visual Studio 2008, und ich habe einige Probleme zu definieren sind. Bei der Verknüpfung, verwende ich die Eigenschaft „Zusätzliches Verzeichnis Include“ (auf Projekteigenschaft C / C ++ Knoten). Dies scheint zwischen MyProject und MyLib1 arbeiten, aber nicht MyLib1 und MyLib2. Für Exemple: Ich habe eine Datei in MyLib2 genannt foo.cpp; Mit #include "foo.cpp" macht Visual Studio, die foo.cpp sagen unknow ist (Datei oder einen Ordner fehlt).

Um sicherzustellen, es ist nicht eine falsche Weg, den ich gab, habe ich wie viele Anläufe gemacht folgende: copy-paste den Pfad in der Befehlszeile (verwendet, um die Bibliothek zu kompilieren) gezeigt in Win-Explorer: Ich sehe auch den Quellcode meiner zweite Bibliothek. Ich habe das Projekt oft Remake und jedes Mal habe ich differents Namen (zwingt mich, die Aufmerksamkeit auf diese zu bezahlen) und alles scheint gut definiert (aber nicht „einschließlich“).

Der einzige Weg, ich finde eigentlich macht es funktioniert: mit # include "c: \\ foo.cpp"! wie den ... Sehr schön für Portabilität

Hier ist eine Zip der Lösung, es selbst zu testen und mir sagen, was falsch ist: MyProject.rar

Vielen Dank für Ihre einige Zeit, mir zu helfen! Lucyberad

War es hilfreich?

Lösung

Zuerst nie schließen * CPP-Dateien.

Zweitens verwenden Vorwärts-Deklaration Ihrer externen Funktionen:

void appellib2(void);

void appellib1(void)
{
    appellib2();
}

Drittens, der rechten Maustaste jedes Projekt im Solution Explorer und wählen Sie "Projekt Abhängigkeiten ..." und Set-up richtige Abhängigkeiten. MyProject -> MyLib1 -> MyLib2

Endlich in Eigenschaften für MyProject, zusätzliche Abhängigkeiten MyLib1.lib einzurichten.

Jetzt kann ich Ihr Projekt ohne Fehler erstellen und ausführen.

UPDATE

umbenennen Nie * CPP zu * .h nur um Probleme zu lösen verbindet. Wenn Sie eine Definition in Ihrer * .h-Datei werden nicht in der Lage, Ihnen schließen sie zweimal oder mehr.

Hier ist Ihr Projekt YourProject.rar .

Andere Tipps

Ich habe geändert CPP .h. Ich weiß, ich habe noch nie eine CPP-Datei aufgenommen werden, aber es war für einen bestimmten Zweck zu testen.

I Prototyp jeder Funktion hinzugefügt haben, aber es hat funktioniert nicht besser (sie enthält die Datei nicht mylib2.cpp, der Prototyp ist besser, aber nicht in diesem Test usefull).

Ich habe Projektabhängigkeiten einrichten. Es immer noch nicht.

Ich habe zusätzliche Abhängigkeiten MyLib1.lib zu MyProject einrichten (ich denke, das ist der nächste Fehler war ich in der Lage wäre zu finden, die Herstellung einer einen Fehler Verknüpfung).

Mit Thesen Modifikationen, habe ich noch habe sind Fehler mylib2.h: keine solche Datei oder das Verzeichnis

.

Hier ist das neue Archiv: MyProject.rar

Wenn Sie erreichen, um es arbeiten, können Sie mir machen ein Archiv der Arbeitslösung?

Danke, Lucyberad.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top