У меня есть динамически связанный двоичный файл, который опирается на версию 52.1 библиотеки ICU (в Linux).
$ ./myprogram ./myprogram: ошибка при загрузке общих библиотек: libicuuc.so.52.1: не удается открыть файл общего объекта: нет такого файла или каталога
Я скачал и собрал эту версию и добавил каталог с таким образом созданными библиотеками .so в LD_LIBRARY_PATH
,
$ ls $HOME/opt/icu-52_1/lib/
icu/ libicuio.so libiculx.so.52 lbicutu.so.52.1
libicudata.so libicuio.so.52 libiculx.so.52.1 libicuuc.so
libicudata.so.52 libicuio.so.52.1 libicutest.so libicuuc.so.52
libicudata.so.52.1 libicule.so libicutest.so.52 libicuuc.so.52.1
libicui18n.so libicule.so.52 libicutest.so.52.1 pkgconfig/
libicui18n.so.52 libicule.so.52.1 libicutu.so
libicui18n.so.52.1 libiculx.so libicutu.so.52
$ export LD_LIBRARY_PATH=$HOME/opt/icu-52_1/lib/:$LD_LIBRARY_PATH
Однако компоновщик жалуется, что не может найти символ ucnv_open_52_1
,
$ ./myprog
./tpsc2: symbol lookup error: ./tpsc2: undefined symbol: ucnv_open_52_1
Символы, предоставленные библиотекой, которую мне удалось построить, ucnv_open_52
,
~/opt/distrib-icu-52_1 $ nm -CD $HOME/opt/icu-52_1/lib/libicuuc.so.52.1 | grep open
...
0000000000062df0 T ucnv_open_52
...
Я не могу понять параметр конфигурации, который заставит symbol
переименование в symbol_MAJOR_MINOR
вместо просто symbol_MAJOR
, Или любой другой способ решить эту проблему …
Задача ещё не решена.
Других решений пока нет …