2013-07-31 106 views
0

現在我編譯sqlite3的代碼使用下列選項:
gcc -c -lpthread -DSQLITE_THREADSAFE=1 sqlite3.c
g++ -o test test.cc sqlite3.o -ldl -lpthread
這工作得很好。
但是我在一些項目中看到,定義爲標誌-DSQLITE_THREADSAFE=1也是在g++編譯器調用listet。這是必需的還是多餘的?如何在C++應用程序中編譯sqlite3線程安全?

+0

檢查預編譯器輸出的代碼是否使用該標記進行編譯將顯示您的案例的答案。 – PlasmaHH

+0

我現在用'-c'和'-o'標誌來代替'-E -dD'標誌。 有很多輸出。我在找什麼? – baam

+0

兩個變體之間的差異 – PlasmaHH

回答

0

只有編譯SQLite代碼本身時才需要SQLITE_THREADSAFE符號。 將其添加到其他編譯器調用是多餘的,但不會傷害。

+0

我怎麼知道sqlite3是編譯線程安全的? – baam

+0

這就是[SQLITE_THREADSAFE符號的用途](http://www.sqlite.org/compile.html#threadsafe)。 –