我在CodeBlocks(使用gcc)中编译了一个程序,它工作正常。 现在我试图从命令行使用gcc编译相同的程序。它产生这样的错误:gcc与complex.h的编译器选项
error: lvalue required as left operand of assignment
这些四行:
OutArray[Index[g]].real() = TempVBF.FirstReal[g];
OutArray[Index[g]].imag() = TempVBF.FirstImag[g];
OutArray[Index[g]+ElementSize].real() = TempVBF.SecondReal[g];
OutArray[Index[g]+ElementSize].imag() = TempVBF.SecondImag[g];
在这些线我已经含有2个复数的实部和虚部的四个值。我将这些值分配给2个复杂变量。 我试图做这样的:
OutArray[Index[g]] = (TempVBF.FirstReal[g],TempVBF.FirstImag[g]);
已编译,但在运行时产生错误的价值观
为什么它首先但不是现在编译?我可以使用什么选项来解决这个问题而不改变这些线?
我使用的命令:
gcc lib/Globals.cpp lib/Comp/SNT_FFT_Comp.cpp lib/Comp/ST_FFT_Comp.cpp lib/Comp/VNT_FFT_Comp.cpp lib/Comp/VT_FFT_Comp.cpp lib/Decomp/* test/main.cpp -lpthread -std=gnu++0x -o TEST
去除-std=gnu++0x
产生了很多错误。将其更改为-std=c++0x
不会发生任何变化。