使用#import的多核构建(/ MP)策略

时间:2008-10-23 15:53:58

标签: visual-studio-2008 visual-c++ build-process multicore

我正在使用VS 2008为我们的大型VC ++项目开发新的解决方案配置。我希望此配置使用多核构建标志/MP

但是,生成COM包装类的“#import”功能会在代码库中散布,并且在使用/ MP时不支持此功能。

我理解为什么#import不起作用,我想知道是否有人遇到过这个问题以及他们是如何解决这个问题的?

我正在做以下事情:

  • 在小型或 超出 帮助的项目中不使用/ MP标志。 (也许我稍后会再回来)
  • 删除#import并将其替换为更标准的MIDL生成的标头(#include)。这只是一些易于转换为旧学校COM的地方的选项。
  • 创建一个新项目#imports剩余的库。首先进行构建。 #Include它在之前#imported的所有位置创建的.tlh文件。

我很好奇是否有人有任何其他建议?此外,在最后一点(制作一个新项目并仅在那里使用#import) - 如果你做了像这样的事情,你是怎么做到的?什么类型的项目,“源”是什么样的,你在哪里输出文件?你是怎么包括他们的? (你知道,为我做所有的想法!)

2 个答案:

答案 0 :(得分:8)

我有一个项目有两个源文件#import同一个文件。使用/ MP进行编译时,由于两个源文件同时尝试创建.tlb,因此偶尔会出现拒绝访问错误。我通过启用预编译的头文件并将#import添加到预编译的头文件源文件中来解决这个问题。

答案 1 :(得分:6)

您可以将/ MP选项作为整体使用,然后使用 / MP1 选项对单个文件进行例外处理。

相关问题