我想验证我的 sqlite3 二进制文件是否使用 HAVE_USLEEP
选项编译。
我想用 PRAGMA compile_options;
检查它,但在我的任何编译尝试中它都没有返回 HAVE_USLEEP
。
要编译我运行的 sqlite:
export CFLAGS="-DHAVE_USLEEP"
./configure
make
这给了我很多以 libtool 报告结尾的输出,其中似乎包含 -DHAVE_USLEEP
libtool:链接:gcc -DHAVE_USLEEP -DSQLITE_OS_UNIX=1 ....
configure
还报告存在 usleep
。
然而,编译后的二进制文件的 session 如下:
user@pc:~/Downloads/sqlite$ ./sqlite3
SQLite version 3.31.0 2020-01-07 09:06:43
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> PRAGMA compile_options;
COMPILER=gcc-4.8.4
ENABLE_DBSTAT_VTAB
ENABLE_FTS4
ENABLE_JSON1
ENABLE_RTREE
ENABLE_STMTVTAB
ENABLE_UNKNOWN_SQL_FUNCTION
HAVE_ISNAN
THREADSAFE=1
sqlite>
我已经尝试了 -DHAVE_USLEEP
和 -DHAVE_USLEEP=1
。
此时我不知道如何处理 - DHAVE_USLEEP
似乎已传递给 libtool
但报告中缺少该选项。我要么在没有选项的情况下(以某种方式)编译它,要么 PRAGMA compiled_options
不返回 DHAVE_USLEEP
。我正在寻找一种方法来区分状态以便能够进一步调试它。
感谢您对此有任何想法。
最佳答案
只看符号是否存在于sqlite库中:
$ nm /path/to/your/libsqlite3.a | grep usleep
U usleep
关于c - 如何检查 sqlite3 是否使用 HAVE_USLEEP 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59627376/