Strategien für Multi-Core-builds (/MP), die #import
Ich arbeite an einer neuen Lösung, die Konfiguration für unseren großen VC++ Projekt mit VS 2008. Ich möchte diese Konfiguration zu verwenden, die multicore-build-flag /MP.
Jedoch das "#import" - Funktion der Erzeugung von COM-wrapper-Klassen gestreut wird, durch den code-Basis und wird diese Funktion nicht unterstützt bei Verwendung von /MP.
Verstehe ich, warum die #import nicht funktioniert, ich möchte wissen, ob jemand Stand vor diesem Problem und wie Sie um ihn herum gearbeitet?
Mache ich die folgenden:
- Nicht verwenden /MP-flag auf Projekte, die klein sind oder über helfen. (vielleicht habe ich ' ll kommen zurück zu Ihnen später)
- Entfernt die #import-und ersetzt es mit einem mehr standard-MIDL-generierten header (#include). Dies ist nur eine option in ein paar Orte, die sind einfach zu konvertieren, zu old-school-COM.
- Machen ein neues Projekt, das #Import der restlichen Bibliotheken. Machen, die bauen zuerst. #Include .tlh-Dateien, die es schafft, in alle Orte, die #zuvor importiert.
Ich bin gespannt, ob jemand irgendwelche anderen Vorschläge? Auch auf der letzten Punkt (machen ein neues Projekt und die Verwendung von #import nur dort) - wenn Sie so etwas Tat, wie hast du das gemacht? Welche Art von Projekt, was hat die "Quelle" Aussehen, wo haben Sie die Ausgabe-Dateien? Wie hast du Sie? (Sie wissen, alles tun, das denken für mich!)
- Ihre Letzte option scheint, wie der beste Weg zu gehen über es, wenn Sie wollen, multicore-baut - er konsistent ist und keine Verschwendete Arbeit. Sorr, dass ich nicht helfen kann mit Informationen darüber,
- Danke für den Kommentar. Stellt sich heraus, ich ' ll müssen mehrere Stufen der tlh-generation in den verschiedenen Phasen des build (eine fast aussichtslose Schlacht). Ich habe diese auf halten - meine aktuellen Kampf zu bewegen off des VSS.
- Hier ist Ihre Antwort stackoverflow.com/questions/650578/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe ein Projekt mit zwei source-Dateien, die #import der gleichen Datei. Beim kompilieren mit /MP, es würde gelegentlich erhalten Sie eine Fehlermeldung "Zugriff verweigert", da der Quell-Dateien, die versuchten, zu erstellen .tlb bei der gleichen Zeit. Ich korrigieren Sie dies durch die Aktivierung von pre-compiled Header, und das hinzufügen der #import in die vorkompilierte header-Quell-Datei.
Können Sie die /MP-option für das Projekt als ganzes, und dann machen Sie eine Ausnahme für eine einzelne Datei mit der /MP1 - option.