把嘎嘎 2024-03-29 00:42 采纳率: 41.9%
浏览 3
已结题

交叉编译sqlite3

交叉编译sqlite3.45.2,去掉tcl --disable-tcl,make仍然提示tool/cktclsh.sh: line 5: tclsh: command not found
,还有如果将库裁剪到最小?

  • 写回答

3条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-03-29 00:43
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题:如何交叉编译去掉tcl的sqlite3.45.2版本,并解决编译时提示tclsh命令找不到的问题?如何将库裁剪到最小? 解答:
    1. 去掉tcl的编译操作 在交叉编译sqlite3.45.2版本时,可以通过配置选项--disable-tcl来去掉tcl的支持,具体步骤如下: 首先下载最新版本的sqlite3源代码并解压,进入解压后的目录,然后输入以下命令: ./configure --disable-tcl make 这样即可编译出去掉tcl支持的sqlite3库。
    2. 解决编译时提示tclsh命令找不到的问题 在编译sqlite3库时,如果提示tool/cktclsh.sh: line 5: tclsh: command not found错误,原因是tclsh命令没有安装或没有正确设置路径。可以按照以下步骤解决: 第一步:检查系统中是否安装了tclsh命令,可以通过以下命令查找: find / -name tclsh 如果没有找到,需要安装tclsh。 第二步:在编译sqlite3库前,需要设置环境变量TCLSH_CMD,指定tclsh的可执行文件路径,例如: export TCLSH_CMD=/usr/bin/tclsh 这样在编译时就可以正确找到tclsh命令。
    3. 将库裁剪到最小 将库裁剪到最小可以减小库的大小,可以按照以下步骤操作: 第一步:打开Makefile文件,找到以下两行: CFLAGS += -DSQLITE_ENABLE_FTS5 CFLAGS += -DSQLITE_ENABLE_JSON1 这两行是开启全文搜索和JSON支持的选项,如果不需要可以注释掉或者删除。 第二步:在configure的时候,使用以下选项: ./configure --disable-tcl --disable-all-extensions 这样可以去掉所有扩展,只保留核心模块。 第三步:在Makefile文件中去掉不必要的模块,例如: LIBOBJ =
      ${TOP}/src/alter.lo
      ${TOP}/src/analyze.lo
      ${TOP}/src/attach.lo
      ${TOP}/src/auth.lo
      ${TOP}/src/begin.lo
      ${TOP}/src/bitvec.lo
      ${TOP}/src/btmutex.lo
      ${TOP}/src/btree.lo
      ${TOP}/src/build.lo
      ${TOP}/src/callback.lo
      ${TOP}/src/complete.lo
      ${TOP}/src/date.lo
      ${TOP}/src/dbstat.lo
      ${TOP}/src/expr.lo
      ${TOP}/src/fault.lo
      ${TOP}/src/fts1.lo
      ${TOP}/src/fts2.lo
      ${TOP}/src/fts3.lo
      ${TOP}/src/fts4.lo
      ${TOP}/src/global.lo
      ${TOP}/src/hash.lo
      ${TOP}/src/insert.lo
      ${TOP}/src/legacy.lo
      ${TOP}/src/loadext.lo
      ${TOP}/src/main.lo
      ${TOP}/src/malloc.lo
      ${TOP}/src/mem1.lo
      ${TOP}/src/mem2.lo
      ${TOP}/src/mem3.lo
      ${TOP}/src/mem5.lo
      ${TOP}/src/mutex.lo
      ${TOP}/src/os_unix.lo
      ${TOP}/src/os_win.lo
      ${TOP}/src/pager.lo
      ${TOP}/src/parse.lo
      ${TOP}/src/pcache.lo
      ${TOP}/src/pragma.lo
      ${TOP}/src/prepare.lo
      ${TOP}/src/printf.lo
      ${TOP}/src/random.lo
      ${TOP}/src/resolve.lo
      ${TOP}/src/rowset.lo
      ${TOP}/src/select.lo
      ${TOP}/src/status.lo
      ${TOP}/src/stmt.lo
      ${TOP}/src/table.lo
      ${TOP}/src/tokenize.lo
      ${TOP}/src/treeview.lo
      ${TOP}/src/trigger.lo
      ${TOP}/src/utf.lo
      ${TOP}/src/util.lo
      ${TOP}/src/vacuum.lo
      ${TOP}/src/vdbe.lo
      ${TOP}/src/vdbeapi.lo
      ${TOP}/src/vdbeaux.lo
      ${TOP}/src/vdbeblob.lo
      ${TOP}/src/vdbemem.lo
      ${TOP}/src/vdbesort.lo
      ${TOP}/src/vdbetrace.lo
      ${TOP}/src/wal.lo
      ${TOP}/src/where.lo
      ${TOP}/src/wherecode.lo
      ${TOP}/src/whereexpr.lo
      ${TOP}/src/whereparse.lo
      ${TOP}/src/whereplan.lo
      ${TOP}/src/wheretrigger.lo
      ${TOP}/src/utf8to16.lo
      ${TOP}/src/vtab.lo 将不需要的模块去掉即可。 需要注意的是,裁剪库时需要保证功能正常,并且需要重新编译测试。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月7日
  • 已采纳回答 3月30日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 the testing results of the whole dataset is empty
  • ¥15 can问题,往哥解决
  • ¥15 FFmpeg 成功推流到 Nginx RTMP 服务器但无法用 ffplay 或 VLC 播放
  • ¥15 请修改以下C语言代码使其能正确输出最短路径
  • ¥20 抖音商城拉码器安卓报错求解决办法或者有新的拉码脚本也可以介绍一下
  • ¥15 MPLAB IDE V2.35 报错make[2]: *** [build/default/production/_ext/1472/MSSP_I2C.p1] Error 1
  • ¥15 Unity2D URP项目TextMeshPro(3D)无法显示文字
  • ¥15 新唐M451 DTMF检测和发送代码修改
  • ¥15 在国外文献网站里点击view pdf 加载异常缓慢甚至加载不出来。
  • ¥65 python批量提取发票的信息