Gdal ссылается на неверную библиотеку sqlite3 - PullRequest
0 голосов
/ 11 марта 2020

My Ubuntu Bioni c установил пакеты libsqlite3-0: amd64 и libsqlite3-dev: amd64, которые предоставляют следующие библиотеки:

/usr/lib/x86_64-linux-gnu/libsqlite3.so -> libsqlite3.so.0.8.6
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0 -> libsqlite3.so.0.8.6
/usr/lib/x86_64-linux-gnu/libsqlite3.so.0.8.6

Для собственного проекта я с нуля скомпилировал дополнительную библиотеку sqlite3, используя CMake с следующие параметры:

set(SQLITE3_VERSION_MAJOR 3)
set(SQLITE3_VERSION_MINOR 24)
set(SQLITE3_VERSION_PATCH 0)
set(SQLITE3_VERSION ${SQLITE3_VERSION_MAJOR}.${SQLITE3_VERSION_MINOR}.${SQLITE3_VERSION_PATCH} )
include_directories(${CMAKE_SOURCE_DIR}/src)
add_library(sqlite3 SHARED src/sqlite3.c src/sqlite3.h src/sqlite3ext.h)
add_executable(sqlite src/sqlite3.c src/shell.c src/sqlite3.h src/sqlite3ext.h)
set_target_properties(sqlite3 PROPERTIES VERSION ${SQLITE3_VERSION}
                                     SOVERSION ${SQLITE3_VERSION_MAJOR} )
set_target_properties(sqlite PROPERTIES OUTPUT_NAME sqlite3)
add_definitions(-DSQLITE_ENABLE_RTREE)
add_definitions(-DSQLITE_ENABLE_FTS4)
add_definitions(-DSQLITE_ENABLE_FTS5)
add_definitions(-DSQLITE_ENABLE_JSON1)
add_definitions(-DSQLITE_ENABLE_RBU)
add_definitions(-DSQLITE_ENABLE_STAT4)
add_definitions(-DSQLITE_ENABLE_COLUMN_METADATA)

Я скомпилировал библиотеку gdal из источников со следующими параметрами:

./configure --prefix=<my gdal path> --with-proj=<my proj path> --with-sqlite3=<my sqlite3 path> --with-curl=<my curl path>/bin/curl-config --without-libtool LDFLAGS=-L<my proj path>/lib LDFLAGS=-L<my sqlite3 path>/lib

После компиляции gdal, команда ldd приводит:

$ ldd <my gdal path>/lib/libgdal.so
libsqlite3.so.3 => <my sqlite3 path>/lib/libsqlite3.so.3 (0x00007f04cb713000)
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f04c3f7d000) (edited) 

Почему используя libsqlite3.so.0 вместо этого просто libsqlite3.so.3?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...