我想提出一个关于MinGW 4.7.2的问题 我第一次遇到由libstdC++ - 6.dll导致的致命问题,当我在OpenCV中冒险时。幸运的是,我在这里遇到了一个解决方法 - >http://answers.opencv.org/question/3740/opencv-243-mingw-cannot-run-program/。它看起来很棒,一段时间。libstdC++ - 6.dll问题
现在我试图实现复杂的数字。我尝试下面的代码
#include <iostream>
#include <complex.h>
using namespace std;
int main(int argc, char* argv[])
{
float _Complex d = 2.0f + 2.0f*I;
cout << "Testing Complex\t" << d;
return 0;
}
它应该运行,一切手段。链接时我没有遇到任何错误或警告。我在Windows中使用CodeBlocks作为我的首选IDE。但是,我又一次陷入困境。这里是APPCRASH报告
Problem signature:
Problem Event Name: APPCRASH
Application Name: complex.exe
Application Version: 0.0.0.0
Application Timestamp: 515d61f7
Fault Module Name: libstdc++-6.dll
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 4ed82a4d
Exception Code: c0000005
Exception Offset: 000462bc
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1033
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
然而令人惊讶的是How to work with complex numbers in C?提供了一个完美的工作的C代码!
#include <stdio.h> /* Standard Library of Input and Output */
#include <complex.h> /* Standart Library of Complex Numbers */
int main()
{
double complex z1 = 1.0 + 3.0 * I;
double complex z2 = 1.0 - 4.0 * I;
printf("Working with complex numbers:\n");
printf("Starting values: Z1 = %.2f + %.2fi\tZ2 = %.2f + %.2fi\n",creal(z1),cimag(z1),creal(z2),cimag(z2));
double complex sum = z1 + z2;
printf("The sum: Z1 + Z2 = %.2f %+.2fi\n", creal(sum), cimag(sum));
return 0;
}
正如您所看到的,再次出现故障的libstdC++ - 6.dll会发挥作用。任何人都可以提出任何解决方法这次,希望不降级到之前版本的MinGW,因为我将不得不重建我的所有库。
任何帮助将不胜感激!
Wellcome to SO。这可能不是您问题的正确站点。有了这样的东西,你应该向你的平台提供商提交一个错误报告。而且,BTW,C99和C++通常不兼容,特别是复杂数字似乎在两者之间有不同的管理方式。 – 2013-04-04 11:55:53
尝试使用Cygwin。 – devnull 2013-04-04 12:00:57
@JensGustedt:这个潜在的问题不是依赖于平台,这个问题对于SO来说是有益的。 – rubenvb 2013-04-04 12:52:12