Problem with qscintilla/Qt5 linking(?)

Jan Palus atler at
Fri Apr 8 09:53:22 CEST 2022

On 08.04.2022 09:01, Jan Rękorajski wrote:
> Python 3.10.4 (main, Apr  1 2022, 09:00:14) [GCC 11.2.0 20220208 (release)] on linux
> Type "help", "copyright", "credits" or "license" for more information.
> >>> from PyQt5 import Qsci
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ImportError: /usr/lib64/python3.10/site-packages/PyQt5/ undefined symbol: _ZTI11QsciPrinter
> As far as I can see the symbol is there, recompiling qscintilla2 does
> not fix it.
> Could someone more versed in the linker(?) take a look at it?

Unfortunately it has not much to do with linking, but rather with qmake.

Above symbol is defined in which is not linked to the
module, that's the reason for undefined symbol:

x86_64-pld-linux-g++ -Wl,--as-needed -Wl,--no-copy-dt-needed-entries -Wl,-z,relro -Wl,-z,combreloc -Wl,--version-script=Qsci.exp -Wl,-O1 -shared -o sipQscipart0.o sipQscipart1.o sipQscipart2.o  -L/tmp/B.ldcyigur/BUILD/QScintilla-2.11.6/build-qt5/Qt4Qt5 /usr/lib64/ /usr/lib64/ /usr/lib64/ /usr/lib64/ -lGL -lpthread

I guess linking to should come from:

qmake = {'CONFIG': 'qscintilla2'...

but perhaps due to the way we build python module it can't find newly built qscintilla2? No idea.

A brute force workaround is to BR: qscintilla2-qt5-devel so it finds system config.

More information about the pld-devel-en mailing list