LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Slackware 14.1 x64 -- Qt 5.2.1 -- Failing to compile 32bit code. KDE applets issues. (https://www.linuxquestions.org/questions/slackware-14/slackware-14-1-x64-qt-5-2-1-failing-to-compile-32bit-code-kde-applets-issues-4175500555/)

hitormiss 04-04-2014 05:32 AM

Slackware 14.1 x64 -- Qt 5.2.1 -- Failing to compile 32bit code. KDE applets issues.
 
I recently installed slackware 14.1 on a development station. I work on both 32bit and 64bit projects. The compiler option -m32 was not working, so I installed multilib and got the latest 32 bit libraries.

Now I don't have an issue with getting code to start to compile but I do get an error saying the version found libQt5Core.so is not compatible with -lQt5Core.

Additionally, I have XFCE window manager installed. XFCE uses some KDE applets, such as KUser, Konsole, KTimer, KWrite, etc. Seeing how KDE was developed in Qt, none of these programs work.

Observations: when running for example, kuser from command line, I get an error:
error while loading shared libraries: libQtNetwork.so.4: cannot open shared object file: No such file or directory.

I have uninstalled Qt 4 upon installing Slackware, mainly because I need to use Qt 5 for my projects. I am wondering if the Qt 5 libraries are not compatible with Qt 4. <-- that seems silly. But regardless, the multilib contains a Qt 4 compatibility library. So unless the issue is that I am missing the Qt 4 64 bit library I am at a loss.

Things I have done:

-Installed multilib
-Copied all Qt*.pc files to the /usr/lib64/pkgconfig/ so that when running pkg-config --modversion Qt5Core it actually works, previously it was not.

If anyone has had a similar issue and can advise it would be greatly appreciated.

hitormiss 04-04-2014 05:47 AM

Installed qt-4.8.5-x86_64-2.txz
 
Installing the qt libary which came with the initial installation seems to have fixed the issue with running apps like KUser and all.

This has made no impact on my issue of compiling, which leads me to believe there is another configuration issue going on.

Alien Bob 04-04-2014 05:51 AM

You can not use Qt 5 with Slackware's packages because they depend on Qt 4. Yes, they are incompatible.
Once you removed Slackware's qt4 package all those programs that depend on it (all of KDE for instance) stopped working.

Eric

hitormiss 04-04-2014 06:02 AM

Thanks Alien Bob, whilst I was typing up my thread I realized that I should try re-installing the qt-4.8.5 library, and that has since fixed my issue of the kde applications not functioning.

I still have another issue -- which I do not have on other distros -- where Qt barks saying that it cannot find core libraries, ie. widgets, gui, core, network, serialport, etc.

Qt Error:

skipping incompatible /opt/Qt/5.2.1/gcc_64/lib/libQt5Core.so when searching for -lQt5Core
cannot find -lQt5Core

Alien Bob 04-04-2014 06:27 AM

Quote:

Originally Posted by hitormiss (Post 5146472)
Qt Error:

skipping incompatible /opt/Qt/5.2.1/gcc_64/lib/libQt5Core.so when searching for -lQt5Core
cannot find -lQt5Core

This looks like you are on a multilib system and the linker skips the version of a library that it can not use (for instance if you are compiling a 32-bit program the linker will skip any 64-bit library with the message "skipping incompatible library").
The "cannot find -lQt5Core" which follows next seems to indicate that you are compiling a 32-bit program but forgot to install 32-bit Qt5 libraries on your multilib system.

Eric

hitormiss 04-04-2014 06:40 AM

The issue with the Qt 32bit libraries is what I was suspecting. Presently the multilib available from alien only contains qt-4.8.5. I am thinking I may just have to download Qt 5 32bit. <-- I will then have 3 installations of Qt. Is there a way I can generate my own Qt compat32 for Qt 5? I am presently searching the Qt site for version 5 libraries.




**It would be nice if you could do this from the Qt Maintenance Tool. Perhaps I will have to suggest that on their forum**

Alien Bob 04-04-2014 08:17 AM

If you have a 32-bit Qt5 package for Slackware, you can create a compat32 version of it that you can install on your multilib Slackware.

You can compile the 32-bit Qt5 package on that multilib computer, no need for a separate 32-bit Slackware computer. For example (actual package name will likely differ but the i486 versus x86_64 is accurate):
Code:

# source /etc/profile.d/32env.sh
# ARCH=i486 ./qt5.SlackBuild
# convertpkg-compat32 -i /tmp/qt-5.2.1-i486-1.txz
# upgradepkg --install-new /tmp/qt-compat32-5.2.1-x86_64-1compat32.txz
# logout

PS: the "logout" command is needed if you want to compile 64-bit programs by default again.

Eric

hitormiss 04-04-2014 10:09 AM

This fixed the issue.

Much obliged for your help Eric!!!


All times are GMT -5. The time now is 07:37 PM.