Frage

Ich bin neu zu organisieren jetzt mein Projekt und was vor kurzem eine einfache Anwendung war, wurde jetzt ein Paar von C ++ Projekten -. statische Bibliothek und reale Anwendung

Ich möchte eine vorkompilierte Header zwischen zwei Projekten teilen, aber stellen einige Probleme mit der Einstellung der .pdb Dateipfade auf.

Nehmen wir mein erstes Projekt Library genannt wird und baut es die .lib Datei mit einer entsprechenden Library.pdb Datei. Nun wird das zweite Projekt namens Application und baut alles in den gleichen Ordner (.exe und eine andere Application.pdb-Datei).

Im Moment meine beiden Projekte ihre eigene vorkompilierte Header-Datei (Library.pch und Application.pch), basierend auf einer Sind-Header-Datei. Es funktioniert, aber ich denke, es ist eine Verschwendung von Zeit und ich denke auch, es sollte zwischen zwei Projekten eine Art und Weise zu teilen sich eine vorkompilierte Header sein.

Wenn in meinem Application Projekt Ich versuche, die Use Precompiled Header (/Yu) Option zu setzen und setzen Sie ihn auf Library.pch, es würde nicht funktionieren, weil der folgenden Fehler:

error C2858: command-line option 'program database name "Application.pdb" inconsistent with precompiled header, which used "Library.pdb".

So jemand etwas Trick oder Art und Weise zu teilen weiß ein vorkompilierte Header zwischen zwei Projekten Erhaltung richtige Debug-Informationen?

War es hilfreich?

Lösung

Die Frage ist, warum Sie die vorkompilierte Header (PCH) Dateien gemeinsam nutzen möchten. Im Allgemeinen woul Ich würde sagen, das macht keinen Sinn. PCH bestehen Kompilieren zu beschleunigen verwendet keine Informationen zwischen den verschiedenen Projekten zu teilen.

Da Sie auch über die PDB-Datei schreiben, möchten Sie wahrscheinlich die Bibliothek Code mit Ihren Anwendungen debuggen. Dies kann durch Einstellung der / Fd-Parameter erreicht werden, wenn die Bibliothek zu kompilieren. Wenn Sie die Bibliothek in Ihrer Anwendung verknüpfen, und der Linker findet die entsprechende PDB-Datei, erhalten Sie die vollen Debug-Support.

Andere Tipps

Das klingt kompliziert und umständlich einzurichten. Mehr als das, überhaupt nicht möglich sein kann.

Sie können stattdessen die vorkompilierte Header von einer Anwendung in die zweite umfassen. Es wird noch einmal für das zweite Projekt kompiliert werden, aber die Wartung wird einfach und Sie haben nicht die Abhängigkeiten im zweiten Projekt neu zu definieren (nur enthalten sie).

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