>

C 프로젝트를 컴파일하려고하는데 "SQLite가 GCC의 -ffast-math 옵션과 함께 올바르게 작동하지 않습니다"라는 오류가 발생합니다. 이 오류를 무시하는 방법 (그렇지 않은 의미가 확실하지 않음) 또는 더 적절한 다른 솔루션을 궁금해하고 있습니다.

  • 답변 # 1

    SQLite 소스 코드를 보면이 오류가 SQLite의 대체 구현 인 sqlite3IsNaN 에서 발생한다는 것을 알 수 있습니다. , != 에 대한 IEEE의 기발한 정의에 의존  NaN 피연산자와 함께 사용하는 경우 연산자입니다.

    일하는 isnan 가있는 경우  C 라이브러리에서 함수를 사용하면 #define SQLITE_HAVE_ISNAN 할 수 있습니다 SQLite가 기존 isnan 를 사용하게합니다.  자체 롤링하는 대신

    또는 -ffast-math 없이 SQLite를 컴파일 할 수 있습니다.

  • 답변 # 2

    이 오류는 gcc 옵션 -ffast-math 를 사용하여 빌드를 구성했기 때문에 발생합니다.  CFLAGS에서. 아마도 당신의 환경에서 아마도 .bashrc 에서 기본 CFLAGS를 내보냈을 것입니다. / .bash_profile / .profile . 그렇다면 -ffast-math 때문에 실제로 제거해야합니다.  유해하며 사용하도록 설계되지 않은 코드를 손상시킬 수 있습니다.

    이 문제를 해결하려면 먼저 빌드 트리를 완전히 청소하고 처음부터 시작하십시오. 그런 다음 CFLAGS를 설정 위치에서 제거하고 로그 아웃 한 후 다시 로그인하거나 unset CFLAGS  빌드 시스템의 configure 스크립트 또는 유사 항목을 실행하기 전에 셸에서

관련 자료

  • 이전 javascript - jQuery를 사용하여 CSS 클래스를 기본값으로 설정하는 방법
  • 다음 c# - 사전의 값인 목록에서 개체 인쇄