【发布时间】:2022-10-21 21:05:17
【问题描述】:
我正在开发一个应用程序,我想用一些个性化的标志编译 SQLite,并将这个 SQLite 版本与 APSW 一起使用!更具体地说,我想使用 SQLite 编译时选项文档 (https://www.sqlite.org/compile.html) 的推荐编译时选项部分中的选项。
我在 Ubuntu 中使用的是 3.39.4.0 版的 APSW 和 3.39.4 版的 SQLite。
1)第一次尝试:
我尝试在 build_ext 中使用带有 --definevalues 标志的合并,将我的选项传递给 CFLAGS,但我的选项似乎没有被应用。
我使用的命令行是:
python3 setup.py fetch --sqlite --version=3.39.4 build_ext --definevalues CFLAGS="Recommended Compile-time Options Here" install
2)第二次尝试:
在 APSW 文档中,我注意到在不合并的情况下构建 APSW 时,setup.py 将查找头文件 sqlite3/sqlite3.h 和库 sqlite3/libsqlite3.so。然后,我尝试生成共享对象 libsqlite3.so 并将 sqlite3.h 和 libsqlite3.so 复制到 apsw 根目录下的子目录 sqlite3 中。这些是我用来生成 libsqlite3.so 共享对象的命令。
gcc -lpthread -ldl -lm -c -fPIC sqlite3.c -o sqlite3.o
gcc sqlite3.o -shared -o libsqlite3.so
为了构建和安装 APSW,我使用了命令
python3 setup.py build install
安装运行良好,但是当我执行时
python3 -m apsw.tests
测试安装,我得到了错误
ImportError: cannot open shared object file: No such file or directory
我需要一些帮助来使用本地构建的 SQLite 构建 APSW。您是否知道一种简单的方法或我在尝试中做错了什么?
【问题讨论】:
标签: python c++ sqlite gcc apsw