2017-12-30 20 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用にコンパイルすると、私は全く問題はありません。

私は、これらの3つのファイル(sqlite3.c、sqlite3.h、およびsqlite3ext.h)があります。警告なしにLinux用にSQLite3をコンパイルする方法

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

コンパイルにはどのようなコマンドを使用していますか? – badjr

+2

あなたはLinux上ではなく、ウィンドウ上にあるように見えます –

+0

ええ、私はUnreal Engine 4を使用しています。これはLinuxでコンパイルできるツールチェーンを使用しています。私は彼らのウェブサイトで尋ねただろうが、これは私が感じる一般的な質問のほうが多かった。多分私は間違っているかもしれない。 –

答えて

0

を?ここで

行の折り返しと警告です:

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 

おそらく、コマンドラインが表示されるはずです。この警告にはいくつかの選択肢があります。 の場合は-Wno-undefCFLAGSに追加できます。

-DSQLITE_OMIT_AUTHORIZATION=0CFLAGSを追加することができます。sqlite3.cです。

あなたはsqlite3.cを開き、ヘッダが含まれているの後に以下を追加することができます

#ifndef SQLITE_OMIT_AUTHORIZATION 
# define SQLITE_OMIT_AUTHORIZATION 0 
#endif 

泡立ち、すすぎ、他の定義のために繰り返します。


コメント]私はLinuxのCは、WindowsのCとは異なり、どのくらいか分かりませんか?

Cは、LinuxとWindowsでは同じです。重要な違いは、コンパイラとOSのABIにあります。

コメント]警告はWindowsでは発生しません。

おそらく別のコンパイラです。 WindowsでMSVCを使用していますか?

コメントこの警告はファイルの実際のパフォーマンスに影響しますか?

いいえ数値が使用されている場合、SQLITE_OMIT_AUTHORIZATIONのようなプリプロセッサシンボルは0と評価されます。それはウィンドウでも起こったが、あなたはそれを認識していなかった。

コメント機能は機能しなくなりますか?

おそらくそうではありません。

コメント]またはこれらの警告を無視できますか?

私はあなたがそれらを無視できると信じています。あなたは-Wno-undefを使ってGCCでそうすることができます。

コメント重要ですか?

重要であると考える項目です。私は彼らがそうは思わない。私にとってこれは標準的なC言語の機能を使用しているだけです。

あなたができることは、SQLiteに対してバグを報告することです。彼らはそれを見て、「これは大勢の人が経験するかもしれないので重要です。このようなバグレポートを入手しないように、ソースで修正する必要があります。

+0

こんにちはJww、ファイルを開いたところ、#ifndefのものがたくさん見つかりました。私はそれがただそれを認識していないかどうかわからないのですか?これらのファイルはsqlite3のWebサイトから直接取得されました。私はどのくらいのLinux CがWindows Cと異なるのか分かりません。警告はウィンドウでは発生しません。これらの警告はファイルの実際のパフォーマンスに影響しますか?機能が壊れて不合格になるか?あるいは、これらの警告を無視することはできますか?彼らは重要ですか? –

+0

こんにちは。フィードバックをお寄せいただきありがとうございます。私は、コンパイルプロセス全体を試して終了し、私のサーバを私のLinuxインスタンスに置き、sql関数呼び出しがまだ私のデータベースに物事を書いているかどうかを確認します。私はまだデータを挿入するためにSQLクエリを呼び出すことができ、データベースからデータを選択する必要があります。 –

関連する問題