c - 如何检查 sqlite3 是否使用 HAVE_USLEEP 编译

标签 c linux sqlite

我想验证我的 sqlite3 二进制文件是否使用 HAVE_USLEEP 选项编译。

编译选项引用herehere .

我想用 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/

相关文章:

linux - CGI 中的 SSL 套接字通信是个好主意吗?

c - 如何在 Mac OS 上安装包含可选字符串函数的 C11 编译器?

c - 合并排序逻辑错误

即使在 php5 fpm .ini 文件中禁用,Linux 魔术引号仍然存在

linux - 如何在登录时加载 symfony 服务器

sqlite - SQLite db 文件位于/存储在 Windows 手机设备中的什么位置?

android - 存储gps数据的格式

iOS/Swift - 使用应用组访问共享数据库

c++ - 我如何使用 void** 函数 (void**)

c++ - 您可以将 Ada 泛型函数导出到 C++ 吗?