使用可视化工作室2017构建项目,我遇到了这个错误:
错误msb 6006:“cl . exe”退出,代码为2。
以下是我的代码:
int main()
{
const int WIDTH=800;
const int HEIGHT=600;
Bitmap bitmap(WIDTH, HEIGHT);
unique_ptr<int[]> histogram(new int[Mandelbrot::MAX_ITERATIONS + 1]{ 0 });
unique_ptr<int[]> fractal(new int[WIDTH*HEIGHT]{ 0 });
//int fractal[WIDTH*HEIGHT]{ 0 };
for (int y = 0; y < HEIGHT; y++) {
for (int x = 0; x < WIDTH; x++) {
double xFractal = (x - WIDTH / 2 - 200)*2.0 / HEIGHT;
double yFractal = (y - HEIGHT / 2)*2.0 / HEIGHT;
int iterations = Mandelbrot::getIterations(xFractal, yFractal);
if (iterations != Mandelbrot::MAX_ITERATIONS) {
histogram[iterations]++;
}
fractal[y*WIDTH + x] = iterations;
uint8_t color = 256 * (double)iterations / Mandelbrot::MAX_ITERATIONS;
color = color*color*color;
bitmap.setPixels(x, y, color, color, color);
}
}
bitmap.write("Mandelbrot.bmp");
return 0;
}
问题似乎是分形数组的声明:
unique_ptr<int[]> fractal(new int[WIDTH*HEIGHT]{ 0 });
如果我注释(以及带有分形变量的其他行),代码编译得很好,如果我将唯一指针更改为正常的int数组,代码就会编译,但是当我调试它时它会引发异常,发出堆栈溢出的信号。
减少数组的大小可以解决问题,因此看起来程序没有足够的内存空间来运行。我在Google上搜索了很多,发现Deafolt将visual studio的堆栈大小限制为1MB(我可能错了),但我找不到如何在visual studio 2017中手动增加堆栈大小。有人能帮我吗?
编辑:这是完整的输出:
1个
1个
' studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14 . 11 . 25503 \ bin \ host x86 \ x86 \ cl . exe '
1个
帮助菜单,或打开技术支持帮助文件了解更多信息
信息1
Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(360,5):
错误MSB6006:"CL.exe"退出,代码为2.1。
" Fractal.vcxproj" -失败。
=========生成:0成功,1失败,0最新,0跳过========
new int[N]{0}
并不意味着“用零填充数组”,它实际上意味着通过将第一个元素设置为0来聚合初始化数组,并对其余元素进行值初始化(将其余元素设置为零)。例如,如果您编写<code>{1}。
由于您已经依赖于值初始化,因此最好从{0}
中删除 0
,顺便说一句,这也会使代码编译:
std::unique_ptr<int[]> fractal(new int[WIDTH*HEIGHT] {});
至于你的原代码为什么编译不出来——这显然是Visual Studio 2017的bug。可以随意举报。
下面是重现该问题的一个简单应用程序:
int main()
{
auto test = new int[200000]{1};
delete[] test;
}
尝试在Windows 10上使用CMake和MSBuild构建TensorFlow时,运行MSBuild时出现以下错误: 所以我只收到一条错误消息,这只是告诉我cmd.exe已关闭,错误代码表明存在问题,但不是问题所在。那么,我该如何找出导致此问题的原因,以便解决它?
这几天我试图解决这个问题,但还是没有成功。如果我建立发布版本没有proGuard然后一切都好。 我读了许多关于可能问题的话题,但对我来说没有任何帮助。到目前为止,我做了如下: Java最大堆大小-1G 一般Android-dontwarnorg.apache.http.**-dontwarnandroid.net.http.Android HttpClient -保持课堂秩序。支持多重索引。多索引
我们使用的是visual studio 2015,并有以下字体:- 使用visual studio 2015 typescript编译器,这可以归结为:- 这很好,在chrome上运行良好,但是,我们希望它也能在ie10 / ie11上运行。 我相信我们需要“多填充”这个,以便将生成的js文件转换为es5。 目前visual studio中有什么可以做到这一点吗?这种转换的最佳方式是什么?或任何样
我刚刚升级到Visual Studio 2017社区版,但在加载标准头文件时遇到了问题。我从各种头文件中得到507个错误。以下是一些片段: 一些错误: 我在Visual Studio 2015社区版中从未遇到过此问题。我是否缺少安装程序中的某些组件?任何帮助都将不胜感激。谢谢!
我在Mac上。 : 当我尝试为Android构建我的颤音应用时,可视化工作室的输出:
这里似乎有什么问题?