2017-12-30 6 views
1

linux 용 sqlite3.c 파일을 컴파일 할 때 수백 가지 경고가 나타납니다.경고없이 SQLite3 for Linux를 컴파일하는 방법은 무엇입니까?

UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17134,5): warning: 'SQLITE_OMIT_AUTHORIZATION' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTHORIZATION 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17137,5): warning: 'SQLITE_OMIT_AUTOINCREMENT' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTOINCREMENT 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17140,5): warning: 'SQLITE_OMIT_AUTOINIT' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTOINIT 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17143,5): warning: 'SQLITE_OMIT_AUTOMATIC_INDEX' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTOMATIC_INDEX 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17146,5): warning: 'SQLITE_OMIT_AUTORESET' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTORESET 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17149,5): warning: 'SQLITE_OMIT_AUTOVACUUM' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTOVACUUM 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17152,5): warning: 'SQLITE_OMIT_BETWEEN_OPTIMIZATION' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_BETWEEN_OPTIMIZATION 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17155,5): warning: 'SQLITE_OMIT_BLOB_LITERAL' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_BLOB_LITERAL 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17158,5): warning: 'SQLITE_OMIT_BTREECOUNT' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_BTREECOUNT 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17161,5): warning: 'SQLITE_OMIT_BUILTIN_TEST' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_BUILTIN_TEST 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17164,5): warning: 'SQLITE_OMIT_CAST' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_CAST 
UATHelper: Packaging (Linux):  ^
UATHelper: Packaging (Linux): C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17167,5): warning: 'SQLITE_OMIT_CHECK' is not defined, evaluates to 0 [-Wundef] 

누구에게도 해결책이 있습니까? 이러한 오류가 발생하지 않도록 내가 무엇을해야하는지 잘 모르겠습니다. 매크로가 정의되지 않은 것처럼 보입니다. Windows 용으로 컴파일 할 때 나는 전혀 문제가 없습니다.

https://gist.github.com/Bdoom/2956a03eb82fd21fcb279b1efcff5576 
https://gist.github.com/Bdoom/0e7dd714bd626e3cdcde6443f46ac593 
https://gist.github.com/Bdoom/f35a6455694db809967dd69e98d380b7 
+1

컴파일 할 때 사용하는 명령은 무엇입니까? – badjr

+2

리눅스가 아닌 윈도우에있는 것 같습니다. –

+0

그래, 내가 리눅스에서 컴파일 할 수있게 만든 툴체인을 사용하는 언리얼 엔진 4를 사용하고 있습니다. 나는 그들의 웹 사이트에서 물어 보았을 것이다. 그러나 이것은 내가 생각하는 일반적인 질문에 더 가깝다. –

답변

0

어떻게 경고없이 리눅스에 대한 sqlite3를 컴파일하기 :

나는이 세 개의 파일 (sqlite3.c, sqlite3.h 및 sqlite3ext.h)가?

UATHelper: Packaging (Linux): 
C:\Users\pbssu\Desktop\Plugins\SQLite3UE4Plugin\Source\SQLite3UE4Plugin\Private\sqlite3.c(17134,5): 
warning: 'SQLITE_OMIT_AUTHORIZATION' is not defined, evaluates to 0 [-Wundef] 
UATHelper: Packaging (Linux): #if SQLITE_OMIT_AUTHORIZATION 

당신은 아마 명령 행을 표시해야합니다 : 여기

는 줄 바꿈과 경고입니다. 이 경고에 대한 몇 가지 선택 사항이 있습니다. sqlite3.c의 경우 -Wno-undefCFLAGS에 추가 할 수 있습니다.

sqlite3.cCFLAGS-DSQLITE_OMIT_AUTHORIZATION=0을 추가 할 수 있습니다.

당신은 sqlite3.c을 열고 헤더가 포함 된 다음에 다음을 추가 할 수 있습니다

#ifndef SQLITE_OMIT_AUTHORIZATION 
# define SQLITE_OMIT_AUTHORIZATION 0 
#endif 

비누 거품은 씻어 다른 정의에 대해 반복합니다. 나는 리눅스 C는 윈도우 C 차이가 얼마나 확실하지 않다]


댓글?

C는 Linux 및 Windows에서 동일합니다. 중요한 차이점은 컴파일러와 OS의 ABI에 있습니다.

의견] 경고는 Windows에서 발생하지 않습니다.

아마도 다른 컴파일러 일 것입니다. Windows에서 MSVC를 사용하고 있습니까?

의견 이러한 경고는 파일의 실제 성능에 영향을 줍니까?

아니오 숫자가 사용될 경우 정의되지 않은 모든 전 처리기 기호 (예 : SQLITE_OMIT_AUTHORIZATION)는 0으로 평가됩니다. WIndows에서도 이런 일이 일어 났지만, 당신은 그것을 인식하지 못했습니다.

의견] 기능이 중단되어 실행 불능입니까?

아마도 그렇지 않습니다.

의견] 또는이 경고를 무시할 수 있습니까?

나는 그들을 무시할 수 있다고 생각합니다. -Wno-undef을 사용하여 GCC로 그렇게 할 수 있습니다.

의견] 중요합니까?

중요한 내용이나 중요 사항. 나는 그들이 그렇다고 생각하지 않는다. 나에게 이것은 표준 C 언어 기능을 사용하는 것이다.

당신이 할 수있는 한 가지는 SQLite에 대한 버그입니다. 그들은 많은 사람들이 그것을 경험할 수 있기 때문에 이것을 중요하게 생각합니다. 우리는이 문제에 대한 더 많은 버그 보고서를 얻을 수 없도록 소스에서 수정해야합니다. "

+0

안녕하세요. Jww, 파일을 열었습니다. #ifndef 것들을 많이 발견했습니다. 비록 그것이 단지 그것을 인식하고 있지 않다면 나는 확실하지 않다? 이 파일들은 sqlite3 웹 사이트에서 직접 가져온 것입니다. 얼마나 많은 Linux C가 Windows C와 다른지 잘 모르겠습니다. 경고는 창에서 발생하지 않습니다. 이러한 경고는 파일의 실제 성능에 영향을 줍니까? 기능이 중단되고 실행 불능입니까? 또는이 경고를 무시할 수 있습니까? 그것들은 중요합니까? –

+0

안녕하세요. 의견을 보내 주셔서 감사합니다. 나는 전체 컴파일 과정을 끝내고 내 서버를 내 리눅스 인스턴스에 넣고 SQL 함수 호출이 여전히 내 데이터베이스에 물건을 쓰고있는 지 확인한다. 난 아직도 SQL 쿼리를 호출하여 데이터를 삽입하고 데이터베이스에서 데이터를 선택할 수 있어야합니다. –

관련 문제