Я пытаюсь создать программу, написанную на C++ предыдущим учеником. Я использую ccmake
, а затем make
для создания программы. Тем не менее, после того, как я ударил make
, я получаю сообщение об ошибке:unimplemented: неожиданный ast of kind ltgt_expr в C++
/workspace/arthur/Project/src/DirectoryName/name.cpp: In member function ‘void seed::Sweep(Datareg3&)’:
/workspace/arthur/Project/src/DirectoryName/name.cpp: sorry, unimplemented: unexpected ast of kind ltgt_expr
/workspace/arthur/Project/src/DirectoryName/name.cpp:confused by earlier errors, bailing out
make[2]: *** .. Error 1
make[1]: *** ..Error 2
Ошибка протекающие на последней строке кода ниже:
Код для этого исходного файла ниже:
#define sgn(x) ((x)>0 ? 1 : ((x)<0?-1:0))
void seed::Sweep(Datareg3& reg3)
{
u_int i, j, k;
Range resp;
float min, max, t;
float gradz;
float grad1xa, grad1xb;
float grad1ya, grad1yb;
float grad2xa, grad2xb;
float grad2ya, grad2yb;
int keepflat, *keepflat_y;
keepflat_y = (int*)malloc(sizeof(int)*reg3.dim[0]);
for(k=0; k<reg3.dim[2]-1; k++)
{
..
for(j=0; j<reg3.dim[1]-1; j++)
{
keepflat = 1;
for(i=0; i<reg3.dim[0]-1; i++)
{
resp.MakeEmpty();
// top
if(i == reg3.dim[0]-2)
{
if(keepflat && keepflat_y[i])
{
// reached end at a flat.. add the edge values
min = max = reg3.getValue(i+1,j,k);
if((t=reg3.getValue(i+1,j,k+1)) < min)
{
min = t;
}
if(t > max)
{
max = t;
}
resp += Range(min,max);
}
// do we need to set keepflat_y[i]?
gradz = reg3.getValue(i,j+1,k+1) -
reg3.getValue(i,j+1,k);
grad2xa = reg3.getValue(i+1,j+1,k+1) - reg3.getValue(i,j+1,k+1);
grad2xb = reg3.getValue(i+1,j+1,k) - reg3.getValue(i,j+1,k);
grad2ya = reg3.getValue(i,j+1,k+1) - reg3.getValue(i,j,k+1);
grad2yb = reg3.getValue(i,j+1,k) - reg3.getValue(i,j,k);
keepflat_y[i] = (sgn(gradz) != 0 &&
((sgn(gradz) == -sgn(grad2xa) && sgn(gradz) == sgn(grad2ya))
||
(sgn(gradz) == -sgn(grad2xb) && sgn(gradz) == sgn(grad2yb))));
//error occurs AT THIS LINE
Я никогда не видел эту ошибку раньше, и когда я попытался выполнить поиск в Google, у меня было очень мало результатов. Кто-нибудь знает, как с этим справиться?
Какой компилятор вы используете и какую версию? –
Я уже подсчитал круглую скобку, и это правильно. Я использую gcc/4.6 – user4352158