Я скомпилировал программу в 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 комплексных чисел. и я присваиваю эти значения двум сложным переменным. Я попытался сделать это следующим образом:
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
ничего не меняет.