2008-10-23 62 views
17

我使用VS 2008,我想這個配置使用多核編譯標誌/MP工作的一個新的解決方案的配置爲我們的大型VC++項目。策略多核構建(/ MP),其使用#import

然而,生成COM包裝類的「#進口」功能是通過時的代碼庫灑和使用/ MP時,不支持該功能。

我明白了爲什麼#進口將無法正常工作,我想知道是否有人已經遇到這個問題,他們是如何工作的周圍?

我做了以下內容:

  • 不使用/ MP標誌上細小或超越幫助項目。 (也許我會回來給他們後)
  • 刪除了#進口,並用更標準MIDL生成的頭(#包括)取而代之。這只是在一些容易轉換爲舊學校COM的地方的一種選擇。
  • 建立一個新的項目##導入其餘的庫。首先進行構建。 #包括它在之前#imported的所有位置創建的.tlh文件。

我很好奇,如果有人有任何其他建議?此外,在最後一點(做一個新項目,使用#import只有在那裏) - 如果你做了這樣的事情,你是怎麼做到的呢?什麼類型的項目,「源代碼」是什麼樣的,你在哪裏輸出文件?你是如何包含它們的? (你知道,做所有我的想法!)

+0

如果你想要多核構建,你最後的選擇似乎是最好的方式 - 它是一致的,沒有浪費的工作。索爾,我無法幫助它的細節, – Tim 2008-10-31 20:45:03

+0

感謝您的評論。事實證明,我需要在構建的不同階段需要幾代階段(近乎無望的戰鬥)。我把這個擱置 - 我目前的戰鬥是擺脫VSS。 – Aardvark 2008-11-03 00:33:11

+2

這是你的答案http://stackoverflow.com/questions/650578/replacement-for-import-in-visual-c – 2011-11-04 12:03:59

回答

6

我有這#IMPORT相同的文件兩個源文件的項目。使用/ MP進行編譯時,偶爾會出現拒絕訪問錯誤,因爲這兩個源文件都試圖同時創建.tlb。我通過啓用預編譯頭文件並將#import添加到預編譯頭文件源文件中來解決這個問題。

6

您可以使用該項目作爲一個整體的/ MP選項,然後破例使用/MP1選擇一個文件。