Outils pour utilisateurs

Outils du site


probleme:compilation:lib:icu

undefined reference to « icu_XX:: »

En compilant LibreOffice sur ma Gentoo, je me suis retrouvé avec des messages d'erreur de type :

/usr/lib/libxml2.so.2 : référence indéfinie vers « ucnv_setToUCallBack »
/usr/lib/libxml2.so.2 : référence indéfinie vers « ucnv_close »
/usr/lib/libxml2.so.2 : référence indéfinie vers « UCNV_FROM_U_CALLBACK_STOP »
/usr/lib/libxml2.so.2 : référence indéfinie vers « ucnv_open »
/usr/lib/libxml2.so.2 : référence indéfinie vers « ucnv_setFromUCallBack »
/usr/lib/libxml2.so.2 : référence indéfinie vers « ucnv_convertEx »
/usr/lib/libxml2.so.2 : référence indéfinie vers « UCNV_TO_U_CALLBACK_STOP »

Pourtant j'ai bien libxml2 compilé avec icu.

J'ai donc exécuté la commande manuellement en rajoutant les librairies de icu :

S=.../libreoffice && I=$S/instdir && W=$S/workdir &&  g++    -Wl,-z,origin '-Wl,-rpath,$ORIGIN/../Library' -Wl,-rpath-link,$I/program -Wl,-z,defs -fstack-protector-strong -Wl,-rpath-link,/lib:/usr/lib -Wl,-z,combreloc  -Wl,--hash-style=gnu  -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo -Wl,-Bsymbolic-functions  -L$W/LinkTarget/StaticLibrary -L$I/sdk/lib  -L$I/program  -L$I/program  -L$W/LinkTarget/Library -Wl,--as-needed -Wl,-O0    $W/CxxObject/idl/source/cmptools/hash.o $W/CxxObject/idl/source/cmptools/lex.o $W/CxxObject/idl/source/objects/basobj.o $W/CxxObject/idl/source/objects/bastype.o $W/CxxObject/idl/source/objects/module.o $W/CxxObject/idl/source/objects/object.o $W/CxxObject/idl/source/objects/slot.o $W/CxxObject/idl/source/objects/types.o $W/CxxObject/idl/source/prj/command.o $W/CxxObject/idl/source/prj/database.o $W/CxxObject/idl/source/prj/globals.o $W/CxxObject/idl/source/prj/svidl.o $W/CxxObject/idl/source/prj/parser.o      -Wl,--start-group    -Wl,--end-group -Wl,--no-as-needed -ltllo -luno_sal  -o $W/LinkTarget/Executable/svidl -licui18n -licuuc -licudata

Et alors :

.../libreoffice/instdir/program/libcomphelper.so : référence indéfinie vers « u_isalpha_60 »
.../libreoffice/instdir/program/libi18nlangtag.so : référence indéfinie vers « icu_60::Locale::Locale(char const*, char const*, char const*, char const*) »
.../libreoffice/instdir/program/libi18nlangtag.so : référence indéfinie vers « icu_60::Locale::createFromName(char const*) »

C'est dû au fait que icu est compilé avec -DU_DISABLE_RENAMING=1. Il m'a donc fallu compiler le module icu de LibreOffice en le rajoutant.

probleme/compilation/lib/icu.txt · Dernière modification : 2022/10/05 14:14 de root