2008-10-23 8 views
17

Ich arbeite an einer neuen Lösungskonfiguration für unser großes VC++ - Projekt mit VS 2008. Ich möchte diese Konfiguration das Multicore-Build-Flag /MP verwenden.Strategien für Multicore-Builds (/ MP), die #import verwenden

Die Funktion "#import" zum Generieren von COM-Wrapper-Klassen wird jedoch durch die Codebasis gestreut und diese Funktion wird nicht unterstützt, wenn/MP verwendet wird.

Ich verstehe, warum #import nicht funktioniert, Ich möchte wissen, ob jemand dieses Problem konfrontiert hat und wie sie darum herum gearbeitet haben?

Ich tue das folgende:

  • Nicht das/MP-Flag auf Projekte verwenden, die klein sind oder über Hilfe. (Vielleicht komme ich später zu ihnen zurück)
  • Die #import entfernt und ersetzte sie mit einem Standard MIDL-generierten Header (#include). Dies ist nur eine Option an einigen wenigen Stellen, die leicht in Old School COM konvertiert werden können.
  • Erstellen Sie ein neues Projekt, das die verbleibenden Bibliotheken importiert. Mache diesen Build zuerst. # Schließen Sie die TLH-Dateien ein, die an allen Stellen erstellt werden, an denen zuvor # importiert wurde.

Ich bin neugierig, ob jemand irgendwelche anderen Vorschläge hat? Auch auf der letzten Punkt (ein neues Projekt und Verwendung von #import nur dort) - wenn Sie so etwas getan haben, wie haben Sie es getan? Welche Art von Projekt, wie sah die "Quelle" aus, wo haben Sie Dateien ausgegeben? Wie hast du sie aufgenommen? (Du weißt, tu das ganze Denken für mich!)

+0

Ihre letzte Option scheint der beste Weg zu sein, wenn Sie Multicore-Builds wollen - es ist konsistent und keine verschwendete Arbeit. Sorr, dass ich nicht mit Details darüber helfen kann, – Tim

+0

Danke für den Kommentar. Es stellt sich heraus, dass ich mehrere Stufen der Generation in verschiedenen Stadien des Builds brauche (ein fast hoffnungsloser Kampf). Ich habe dies auf Eis gelegt - mein aktueller Kampf ist es, von VSS wegzugehen. – Aardvark

+2

Hier ist Ihre Antwort http://stackoverflow.com/questions/650578/replacement-for-import-in-visual-c –

Antwort

6

Ich habe ein Projekt mit zwei Quelldateien, die die gleiche Datei importieren. Beim Kompilieren mit/MP wurde gelegentlich ein Zugriff verweigert, da beide Quelldateien gleichzeitig versuchten, die TLB zu erstellen. Ich korrigiere dies, indem ich vorkompilierte Header aktiviere und den #import in die vorkompilierte Header-Quelldatei hinzufüge.

+0

Dies funktionierte für mich. Ich bin mir nicht sicher, ob es irgendwelche Nachteile gibt, aber jetzt bin ich glücklich. Vielen Dank. – criddell

6

Sie können die/MP-Option für das Projekt als Ganzes verwenden, und dann eine Ausnahme für eine einzelne Datei, die /MP1 Option machen.

+1

Ich wäre nett, aber es funktioniert nicht. – sorin

Verwandte Themen