0

I'm trying to compile ICU sqlite extension. System: Ubuntu 19.04 src: sqlite-src-3310100.zip

action history:

unzip sqlte-src-3310100.zip
mkdir bld
cd bld
CFLAGS="-O3" ../sqlte-src-3310100/configure && make -j8
# compilation successfull without errors except some warnings
gcc --shared -fPIC -O3 -licui18n -licudata -licuuc -I ./ -I ../src/ext/icu/ -o libSqliteIcu.so ../src/ext/icu/icu.c
# there is no errors
sudo cp libSqliteIcu.so /usr/lib/

Trying to load:

import sqlite3
conn = sqlite3.connect("database.sqlite") # или :memory: чтобы сохранить в RAM
cur = conn.cursor()
conn.enable_load_extension(True)
conn.load_extension('libSqliteIcu')

Error appears:

------------------------------------------------------
OperationalError     Traceback (most recent call last)
<ipython-input-67-d5ebe36b8718> in <module>
      3 cur = conn.cursor()
      4 conn.enable_load_extension(True)
----> 5 conn.load_extension('libSqliteIcu')

OperationalError: /lib/libSqliteIcu.so: undefined symbol: uregex_setText_64

Please help.

sophros
  • 14,672
  • 11
  • 46
  • 75
legale
  • 612
  • 7
  • 9
  • Similar question: https://stackoverflow.com/questions/57580172/sqlite-unable-to-compile-regexp-replace-function-dll – sophros Apr 07 '20 at 12:28

1 Answers1

0

Problem solved.

Solution:

gcc --shared -fPIC -O3 -o libSqliteIcu.so ../src/ext/icu/icu.c -licui18n -licuuc -licudata -L/usr/local/lib

Details:

pkg-config --libs icu-i18n

returns:

-licui18n -licuuc -licudata -L/usr/local/lib
legale
  • 612
  • 7
  • 9