.net Visual Studio 8:混合模式程序集中的生成时间
我有一个C++/CLI程序集,由大约50个源文件组成。此程序集中的代码静态链接到多个C++库,以执行各种“重命”类型任务。 我正在使用VisualStudio8(2005)SP1构建此程序集 在一台像样的双核机器上,仅通过“仅项目”->“仅重建”构建此程序集(无依赖项等)大约需要4.5分钟。以下是带近似时间注释的缩写生成输出:.net Visual Studio 8:混合模式程序集中的生成时间,.net,visual-studio,c++-cli,managed-c++,.net,Visual Studio,C++ Cli,Managed C++,我有一个C++/CLI程序集,由大约50个源文件组成。此程序集中的代码静态链接到多个C++库,以执行各种“重命”类型任务。 我正在使用VisualStudio8(2005)SP1构建此程序集 在一台像样的双核机器上,仅通过“仅项目”->“仅重建”构建此程序集(无依赖项等)大约需要4.5分钟。以下是带近似时间注释的缩写生成输出: Compiling... (file 0) (file 1) ... (file N) // About 2 min total to
Compiling...
(file 0)
(file 1)
...
(file N) // About 2 min total to compile all files
Linking... // About 12s
Generating Code // 42s
Finished Generating Code // < 1s
Embedding Manifest // < 1s
Generating Code // 30s
Finished Generating Code
(15 seconds of nothing)
Done
编译。。。
(文件0)
(档案1)
...
(文件N)//编译所有文件总共大约需要2分钟
链接…//大约12秒
生成代码//42s
已完成生成代码//<1s
嵌入清单/<1s
生成代码//30s
已完成生成代码
(15秒零)
多恩
我应该如何开始调试为什么这个程序集要花这么长时间来构建?编译和链接时间虽然不是很长,但可能与我对这种规模的项目的预期差不多。让我担心的是,我看到了两个“生成代码”的步骤,每个步骤都比大多数其他项目耗时更长
我的第一个猜测是,这与链接到程序集的非托管代码的数量有关。但是,我有几个托管应用程序项目,它们使用的本地代码同样多,而且构建时间非常合理
有人知道到底是什么导致两个“生成代码”步骤花费如此长的时间吗?是否缺少项目设置?您的项目是否使用预编译的标题?托管C++与非托管C++的方式有相同的支持。要将项目切换到预编译的标题,请执行以下操作: 有关详细信息,请参阅(向下滚动至“预编译标题”部分)
- 确保每个.cpp文件都以#include“xxxx”开头,其中
是包含项目中使用的所有常用头文件的头文件xxxx.h
- 创建一个只包含
文件且没有其他代码的xxxx.cpp文件xxxx.h
- 在整个项目的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,使整个项目使用xxxx.h预编译头
- 仅在
文件的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,将其设置为“生成预编译头”xxxx.cpp
编译项目现在应该只需要以前构建时间的一小部分。您的项目是否使用预编译的标题?托管C++与非托管C++的方式有相同的支持。要将项目切换到预编译的标题,请执行以下操作: 有关详细信息,请参阅(向下滚动至“预编译标题”部分)
- 确保每个.cpp文件都以#include“xxxx”开头,其中
是包含项目中使用的所有常用头文件的头文件xxxx.h
- 创建一个只包含
文件且没有其他代码的xxxx.cpp文件xxxx.h
- 在整个项目的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,使整个项目使用xxxx.h预编译头
- 仅在
文件的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,将其设置为“生成预编译头”xxxx.cpp