[scribus] Linking error

Morten Langlo mlanglo at mail.dk
Tue Sep 23 12:53:44 UTC 2014

Tue, Sep 23, 2014 at 10:23:05AM +0200, skrev JLuc:
> Le 22/09/2014 16:52, Morten Langlo a écrit :
> >I think It tells You, that this symbol is found
> >in libQt5PrintSupport.so.5 and wants You to link to it.
> >try adding
> >    -DCMAKE_EXE_LINKER_FLAGS=-lQt5PrintSupport
> >to your cmake command, and see if it helps!
> >Enjoy
> Thanks for answerring. Alas, I tried various -DCMAKE_EXE_LINKER_FLAGS
> but did not succeed.
> BTW there's something i dont fully understand :
> - Each Qt new version download comes with a bunch of .so packed in the the lib folder
> These seem to be libraries.
> Either declarations only or actual code, i dont know...
> These libs change each time a new Qt version is out.

Yes, it is actual code, and change with each new version.

AND, if the header files are in a seperate package, 
you also need to upgrade that one.

> - So as to get the compile/make/link/install process OK, i *also* have to install
> some libraries packages on my OS (using apt-get or synaptics)
> Most of these are -dev versions of some other libraries.
> These libs usually dont change (except when going from Qt4 to Qt5)

Other libraries you only have to upgrade, if they in some way depend
on the Qt library. But maybe those programmes - apt-get or synaptics - force
an upgrade of other libraries together with an upgrade of Qt.

With an upgrade of Qt5 from 5.3.1 to 5.3.2 You do not need to upgrade 
other packages, t.ex. scribus 1.5 compiled against Qt 5.3.1 runs happily
against Qt 5.3.2 without any problem.

> What different roles do play these 2 sets of libraries ?
> When do they each become used ?

If You by this mean .so package and dev-packages (headerfiles), 
.so packages are used for running a program, and the header files 
are used, when You compile a program.

And the dev-package MUST be the same version as the .so package.

> As with the libQt5PrintSupport issue,
> could it be that the previously OK apt-get installed libraries
> do not fit anymore the new Qt5.3.2 provided .so libraries ?

Well :-)
now You forced me to upgrade to Qt5-5.3.2 to see what is going on, and found 
that You now actual need to declare not one but two Qt libraries in the cmake command.

This works for me:
   cmake ../Scribus -DCMAKE_INSTALL_PREFIX=/usr/local/scribus_svn  -DWANT_GRAPHICSMAGICK=1 \
   -DCMAKE_EXE_LINKER_FLAGS="-lQt5Quick -lQt5PrintSupport"

So add this to whatever cmake command You use:
   -DCMAKE_EXE_LINKER_FLAGS="-lQt5Quick -lQt5PrintSupport"

before You compile, do a make clean to avoid trouble.

PS. I am doing this on slackware 14.1 64bit


Morten Langlo

More information about the scribus mailing list