[Interest] Link error while building Qt/32 on Linux 64 bits

Christian Gagneraud chgans at gmail.com
Mon Aug 28 00:29:24 CEST 2017


On 28 August 2017 at 04:46, Thiago Macieira <thiago.macieira at intel.com> wrote:
> On Saturday, 26 August 2017 22:42:49 PDT Christian Gagneraud wrote:
>> On 27 August 2017 at 16:08, Thiago Macieira <thiago.macieira at intel.com>
> wrote:
>> > On Saturday, 26 August 2017 18:25:16 PDT Christian Gagneraud wrote:
>> >> /usr/bin/ld.gold: warning: skipping incompatible
>> >> //usr/lib/x86_64-linux-gnu/libSM.so while searching for SM
>> >> /usr/bin/ld.gold: error: cannot find -lSM
>> >> /usr/bin/ld.gold: warning: skipping incompatible
>> >> //usr/lib/x86_64-linux-gnu/libICE.so while searching for ICE
>> >> /usr/bin/ld.gold: error: cannot find -lICE
>> >> .obj/qxcbsessionmanager.o:qxcbsessionmanager.cpp:function
>> >> QXcbSessionManager::~QXcbSessionManager(): error: undefined reference
>> >> to 'SmcCloseConnection'
>> >
>> > The undefined reference is caused by the libraries listed right before it
>> > not being found.
>>
>> Not sure to get what you mean.
>>
>> Given this:
>> -lxcb-xinerama -L/home/krys/Projects/qt5/qtbase/lib
>> -lQt5ServiceSupport -lQt5ThemeSupport -lQt5EventDispatcherSupport
>> -lQt5FontDatabaseSupport -lfontconfig -lfreetype
>> -lQt5LinuxAccessibilitySupport -lQt5AccessibilitySupport -lGL -lQt5Gui
>> -lQt5DBus -lQt5Core -lpthread -lX11 -lX11-xcb -lXi -lSM -lICE
>> -lxcb-xkb -lxcb-render-util -lxcb-render -lxcb -lxcb-shm -lxcb-sync
>> -lxcb-xfixes -lxcb-randr -lxcb-image -lxcb-keysyms -lxcb-icccm
>> -lxcb-shape -lGL
>>
>> Should I focus at the libs on the right or on the left of "-lSM -lICE"?
>> My understanding of ld tells me to look on the right (reverse dependency
>> order).
>
> The left, centre and right of -lSM -lICE. You need ALL of them.
>
>> I think I have installed all these libraries.
>
> You have not:. You showed you have libSM.so.6. You need libSM.so.

Hi Thiago,

Thanks for pointing that out.
I don't have access to this computer right now, i'm running Fedora 22
here, and this machine has libSM.so (64 bits only machine, and i don't
want to mess up that one)
[developer at chris-g-vm1 ~]$ ldconfig -p | grep libSM
    libSM.so.6 (libc6,x86-64) => /lib64/libSM.so.6
    libSM.so.6 (libc6) => /lib/libSM.so.6
    libSM.so (libc6,x86-64) => /lib64/libSM.so

But according to packages.ubuntu.com [1], I need to install
libsm-dev:i386 to get libSM.so, libSM.so.6 is provided by the package
libsm:i386 [2]

I have installed (I think) all the libfoo:i386, but when i try to
install some libfoo-dev:i386, it forces me to specify dependencies as
well and ends up removing the x86_64 versions of these packages...
>From memory, here is the scenario:
$ apt-get install libfoo-dev:i386
cannot install libfoo-dev:i386, needs libbar-dev:i386 and
libbar-dev:i386 is not to be installed
$ apt-get install libfoo-dev:i386 libbar-dev:i386
About to remove: <long list of packages depending on libfoo and libbar>
About to install: libfoo-dev:i386, libbar-dev:i386

At which stage, i just cancel the command because the list of packages
to be removed is really long and scary.

I need to spend more time on this, so far it's all about Linux distro
issues, nothing wrong with Qt itself.

Chris

[1] https://packages.ubuntu.com/search?searchon=contents&keywords=libSM.so&mode=exactfilename&suite=zesty&arch=any
[2] https://packages.ubuntu.com/search?searchon=contents&keywords=libSM.so.6&mode=exactfilename&suite=zesty&arch=any

>
> --
> Thiago Macieira - thiago.macieira (AT) intel.com
>   Software Architect - Intel Open Source Technology Center
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest



More information about the Interest mailing list