Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Visual Studio 8:混合模式程序集中的生成时间_.net_Visual Studio_C++ Cli_Managed C++ - Fatal编程技术网

.net Visual Studio 8:混合模式程序集中的生成时间

.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

我有一个C++/CLI程序集,由大约50个源文件组成。此程序集中的代码静态链接到多个C++库,以执行各种“重命”类型任务。 我正在使用VisualStudio8(2005)SP1构建此程序集

在一台像样的双核机器上,仅通过“仅项目”->“仅重建”构建此程序集(无依赖项等)大约需要4.5分钟。以下是带近似时间注释的缩写生成输出:

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.h
    文件且没有其他代码的xxxx.cpp文件
  • 在整个项目的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,使整个项目使用xxxx.h预编译头
  • 仅在
    xxxx.cpp
    文件的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,将其设置为“生成预编译头”

编译项目现在应该只需要以前构建时间的一小部分。

您的项目是否使用预编译的标题?托管C++与非托管C++的方式有相同的支持。要将项目切换到预编译的标题,请执行以下操作:

有关详细信息,请参阅(向下滚动至“预编译标题”部分)

  • 确保每个.cpp文件都以#include“xxxx”开头,其中
    xxxx.h
    是包含项目中使用的所有常用头文件的头文件
  • 创建一个只包含
    xxxx.h
    文件且没有其他代码的xxxx.cpp文件
  • 在整个项目的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,使整个项目使用xxxx.h预编译头
  • 仅在
    xxxx.cpp
    文件的VS编译设置中,对于所有配置(构建和发布),在预编译头部分,将其设置为“生成预编译头”
编译项目现在应该只需要以前构建时间的一小部分