2013-07-31 77 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)。 –