C++ libstdc&x2B+-6.dll问题

C++ libstdc&x2B+-6.dll问题,c++,c,c99,complex-numbers,libstdc++,C++,C,C99,Complex Numbers,Libstdc++,我想提出一个关于MinGW 4.7.2的问题 当我冒险使用OpenCV时,我第一次遇到了由libstdc++-6.dll引起的致命问题。幸运的是,我在这里遇到了一个解决方法->。有一段时间,它看起来很棒 现在我正在尝试实现复数。我尝试以下代码 #include <iostream> #include <complex.h> using namespace std; int main(int argc, char* argv[]) { float _Complex

我想提出一个关于MinGW 4.7.2的问题 当我冒险使用OpenCV时,我第一次遇到了由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;
}
然而令人惊讶的是,它提供了一个完美的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;
}
#包含/*标准输入输出库*/
#include/*复数标准库*/
int main()
{
双复数z1=1.0+3.0*I;
双络合物z2=1.0-4.0*I;
printf(“处理复数:\n”);
printf(“起始值:Z1=%.2f+%.2fi\tZ2=%.2f+%.2fi\n”、creal(Z1)、cimag(Z1)、creal(z2)、cimag(z2));
双复和=z1+z2;
printf(“总和:Z1+Z2=%.2f%+.2fi\n”,creal(总和),cimag(总和));
返回0;
}
如您所见,错误的libstdc++-6.dll再次发挥作用。这次有谁能给我建议一些解决方法,希望不要降级到MinGW的早期版本,因为我将不得不重建我的所有库


任何帮助都将不胜感激

> Jens说,我不认为<代码>复杂。H./Cuth.Head文件与C++兼容。在C++中,你应该使用Seope:Suff:

#include <iostream>
#include <complex>

int main()
{
  std::complex<double> c1(1.0,1.0), c2 ;

  c2 = pow(c1,2.0);

  std::cout << c1 << "  " << c2 << std::endl; 
}
#包括
#包括
int main()
{
配合物c1(1.0,1.0),c2;
c2=功率(c1,2.0);

Std::CouthWeldSo。这可能不是你的问题的正确站点。你应该向JensGustedt的平台提供商提交一个bug报告。BTW,C99和C++通常是不兼容的,特别是复数似乎在两个之间有不同的管理。@:这个根本问题不是平台DeDENDEE。nt,这个问题对SO有好处。@devnull请不要给出不相关的建议。@rubenvb那么相关的
建议应该是为MinGW编写一份bug报告?但即使这样,也需要一些信息——比如编译器(和版本)@rubenvb:谢谢。我知道这不仅仅是windows的问题,因为它给了我一个分段错误!
#include <iostream>
#include <complex>

int main()
{
  std::complex<double> c1(1.0,1.0), c2 ;

  c2 = pow(c1,2.0);

  std::cout << c1 << "  " << c2 << std::endl; 
}