gpt4 book ai didi

ios - 使用XCode构建Sqlite ICU

转载 作者:行者123 更新时间:2023-12-01 20:24:26 25 4
gpt4 key购买 nike

如何在iPhone应用程序的工作区中使用ICU(Unicode国际组件)将sqlite编译为项目?

我之前已经编译了sqlite合并,但是我不确定应该下载哪些文件以及需要将哪些脚本添加到xcode中-当然,我不是第一个需要此文件的人。

理想情况下,我正在寻找逐步说明。

最佳答案

这是一个相当老的问题,但是b / c我想花很多时间自己建立一个ICU版本,我想分享一下我的经验。基本上我提出了这个问题,并从这里的sqlite邮件列表中获得帮助。https://www.mail-archive.com/sqlite-users@mailinglists.sqlite.org/msg112029.html

因此,首先使用brew安装icu4c,但有一个陷阱,b / c brew拒绝链接icu4c。所以我需要在路径中添加icu4c

qiulangs-MacBook-Pro:fts qiulang$ brew info icu4c
icu4c: stable 62.1 (bottled) [keg-only]
C/C++ and Java libraries for Unicode and globalization
http://site.icu-project.org/
/usr/local/Cellar/icu4c/62.1 (250 files, 67.3MB)
Poured from bottle on 2018-07-05 at 15:12:09
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/icu4c.rb
==> Caveats
icu4c is keg-only, which means it was not symlinked into /usr/local,
because macOS provides libicucore.dylib (but nothing else).

If you need to have icu4c first in your PATH run:
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/icu4c/sbin:$PATH"' >> ~/.bash_profile

For compilers to find icu4c you may need to set:
export LDFLAGS="-L/usr/local/opt/icu4c/lib"
export CPPFLAGS="-I/usr/local/opt/icu4c/include"

其次,从 https://www.sqlite.org/download.html下载 sqlite-autoconf tar
然后像这样运行configure,(如果您的configure输出的第一行是 bash: icu-config: command not found,请检查为什么icu4c不在您的路径中。)
./configure CFLAGS="-DSQLITE_ENABLE_ICU `icu-config --cppflags`" LDFLAGS="`icu-config --ldflags`"

我没有按照brew的建议设置 LDFLAGS & CPPFLAGS,但我仍然使用输出 creating Makefile成功运行configure,然后运行make来构建ICU版本。我相信之后,您要仔细检查它是否有效。这是我使用的示例代码:
sqlite> CREATE VIRTUAL TABLE zh_text USING fts4(text, tokenize=icu zh_CN);
sqlite> INSERT INTO zh_text values('为什么不支持中文 Can icu support Chinese');
sqlite> CREATE VIRTUAL TABLE zh_terms USING fts4aux(zh_text);
sqlite> SELECT term, col, documents FROM zh_terms;
can|*|1
can|0|1
chinese|*|1
chinese|0|1
icu|*|1
icu|0|1
support|*|1
support|0|1
不|*|1
不|0|1
中文|*|1
中文|0|1
为什么|*|1
为什么|0|1
支持|*|1
支持|0|1
sqlite> CREATE VIRTUAL TABLE icu_zh_cn USING fts3tokenize(icu, zh_CN);
sqlite> SELECT token, start, end, position FROM icu_zh_cn WHERE INPUT='为什么不支持中文 fts5 does not seem to work for chinese';
为什么|0|9|0
不|9|12|1
支持|12|18|2
中文|18|24|3
fts5|25|29|4
does|30|34|5
not|35|38|6
seem|39|43|7
to|44|46|8
work|47|51|9
for|52|55|10
chinese|56|63|11

fts5似乎还不支持ICU token 生成器,因此我只能fts3或fts4。
sqlite> CREATE VIRTUAL TABLE zh_text5 USING fts5(text, tokenize=icu zh_CN);
Error: parse error in "tokenize=icu zh_CN"

关于ios - 使用XCode构建Sqlite ICU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27148833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com