Внутренняя ошибка компилятора: недопустимая инструкция в gcc при попытке компиляции sqlite3.c - PullRequest
0 голосов
/ 01 марта 2019

Я настаиваю на компиляции OMNet ++, и во время компиляции sqlite3.c он показывает мне следующую ошибку:

sqlite3.c: In function ‘computeJD’:
sqlite3.c:18784:3: internal compiler error: Illegal instruction
   p->iJD = (sqlite3_int64)((X1 + X2 + D + B - 1524.5 ) * 86400000);
   ^

Исходный код sqlite3.c в этой строке показывает:

  X1 = 36525*(Y+4716)/100;
  X2 = 306001*(M+1)/10000;
  p->iJD = (sqlite3_int64)((X1 + X2 + D + B - 1524.5 ) * 86400000);
  p->validJD = 1;

Я не вижу, где может быть ошибка.Неужели мне нужно передать какой-то флаг компилятору ???

1 Ответ

0 голосов
/ 01 марта 2019

Ваш двоичный файл компилятора GCC, очевидно, был скомпилирован для неправильной субархитектуры, так что вычисления с плавающей запятой приводят к SIGILL ловушкам.На x86 это может произойти, если вы запустите компилятор, скомпилированный для процессора с поддержкой AVX2, например, на компьютере, не поддерживающем AVX2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...