Scrivener "Cannot mix incompatible Qt library"

Quick overview:-

Windows user and also Linux convert, have tried amongst others Ubuntu, Mint Maya, Mint Cinamon and finally KDE, which I like.

As normall I Installed Thunderbird as my prefered mail client, Dropbox as my cloud repository and finally tried to install Scrivener which I use to (try to) write my novels.

Everything ok except Scrivener which, by the way is a brilliant package for authoring.

Droppping to terminal to investigate I get the following error message
“Cannot mix incompatible Qt lLibrary (version 0x40801) with this library (version 0x 40800)”

Scrivener came from… literatureandlatte.com/forum … 0b30e6f8cd
Which I have used and am stil uisng on other machines and does work in Mint Maya.

Any help gratefully received. Regards, Bwdjai

This particular problem is different from the 64-bit issues and the issues with modules within Scrivener, so because this title is most descriptive, I will post my investigations here, not in the thread that is more popular, more confused, and entirely unhelpful.

First, the specifics of what I’ve learned so far: the problem is KDE and it is intermittent across installs. It isn’t a problem with individual distros or 64-/32-bit.

What I suspect to be true. Either a particular install will run Scivener or it won’t; so far I haven’t seen a documented case where a non-functional system (with this error) was made functional. I don’t know for sure, but I strongly suspect that the reverse is also true: that a KDE install that works with Scrivener won’t suddenly stop working with this error.

The longer narrative:

I’m a long-time Fedora64 KDE user (I know, I know, but it involves my playing around with Centos back in 2005) and tried Scrivener out on my cheapo lappy running Fedora 64 and KDE. It worked fine. No issues, aside from lack of spellcheck and missing features I didn’t care to investigate.

I liked Scrivener well enough to try to install it on my desktop (F64, KDE). No go, with the QT version 4.8.0 vs. whatever-is-installed problem. Since that’s the system with the nice keyboard and the big screen, this rankled.

Another thing that rankled was I didn’t have google-earth working on either machine. I’d gotten it to work, in the past, on F64 but I’d forgotten how exactly and given up. The desktop was a newer install of F64, so I assumed the reason was that I had done so much work to the lappy trying out all the i386 compatibility packages.

Here’s a major piece of the puzzle for all of us. Because I don’t code, I’m very hazy about the logistics of getting a library to work. This is what I’m going to attempt to document and find a fix for. Back to the narrative.

So at this point I figured it was the old, intractable 64-/32-bit nonsense. When a newer version of Fedora came out, I put F32 on the desktop. Still the same problem. I searched around the web looking for information on why, but found little or nothing. I figured it was a Fedora problem. Because it seems like most of the software packaging for Linux versions are done in .deb and the non-Linux world seems to think Linux is all about Ubuntu, I decided to move my desktop to Kubuntu. When I installed Scrivener, I said, “Hey, new version (1.5), I’ll try that.”

Success!

So, at that moment I had a desktop Kubuntu 12.10 32-bit system with Scrivener 1.5.0.6 and a Fedora 16 64-bit system with Scrivener 1.2.6. Well, since I had confirmed that Kubuntu worked with Scrivener, I decided to update my lappy to match.

Failure! And swearing!

And yes, I have confirmed that with XFCE I can run Scrivener. But apart from this single issue, KDE is more flexible and more capable, and I’m not switching. Besides, there are quite a few KDE people out there that can’t get Scrivener to work on their system, and I’d like to figure out how to actually fix the problem.

So I’m going to clean and reinstall my lappy from scratch and take a very minimalist approach to tracking down the issue.

This one has been plaguing us for some time. It seems to be most prevalent with Kubuntu. I don’t know yet is 1.5.0.6 has fixed it.

I did install Arch Linux in a test environment with KDE and installed 1.5.0.6. It worked there. I’m firing up my Kubuntu 12.10 to try the new one right now…

Nope, get the same error in Kubuntu with 1.5.0.6. Although mine is complaining about version 0x40803 this time. Can anyone else confirm that they are able to run KDE and run Scrivener? I don’t think it was just a fluke with Arch that allowed it to work. I’m leaning towards something with the way Kubuntu has the libraries configured. But I don’t know enough to say that for sure.

Yeah I had no issue with Slackware and ARch LInux. I didn’t need to unset the plugin path, either, for those two.

I installed Mint 13, 64 bit with MATE. Then I installed Scrivener from the .deb file with dpkg. It worked perfectly.

Then I installed KDE using apt-get.

Scrivener still works great with none of these issues.

This might help you track it down.

Hrmmm…So what does Kubuntu do differently from the other distros? Ubuntu regular doesn’t have that problem, if memory serves.

Just to reiterate: this doesn’t seem to be entirely distro-specific.

I’ve had Scrivener both work and not work under KDE using Fedora-64, Fedora-32, and Kubuntu-32. Currently, my desktop running Kubuntu runs Scrivener without the lib error while my lappy with the same won’t. I even reinstalled the lappy a couple times hoping on randomized success.

Before, Scrivener was working on the lappy under Fedora-64 but not on the desktop under either F64 or F32.

I’m doing actual work now so I’m not making any headway on the problem. Kinda given up on the lappy for now.

The error message “cannot mix incompatible Qt library” has just popped up in this scenario …

https://forum.literatureandlatte.com/t/importing-doc-not-an-option/20682/1

I have Qt 4.8.1 installed on Ubuntu 12.04 (32 bit).

The error comes from Qt, the UI library, and means that the version of Qt installed does not match the version with which Scrivener was compiled.

If you issue the command (on Ubuntu and .deb-based Linux distributions):

dpkg -l libqtcore4

you should get (among others) a line that looks like this:

ii libqtcore4 4:4.8.1-0ubunt Qt 4 core module

In my case, that means that the library installed is 4.8.1, which is incompatible with the library 4.8.0 with which Scrivener was built. Any installation that has Qt 4.8.0 (and binary compatible) should work, all the ones (like my Ubuntu 12.10) that have a different version will not. Kubuntu (and any distro with KDE default) is particularly affected, because KDE is based on Qt and hence every KDE distribution comes with its version of Qt.

To fix this, there are three options:

  1. The user installs libqtcore4 and dependencies version 4.8.0 from some place, or chooses a distro that has that version installed (apparently, Kubuntu 12.04)
  2. Scrivener ships with its own Qt library (either via static compilation or dynamically via script setup - i.e. the scrivener startup script would have to set the path so that the libqt4 shipped with scrivener is loaded instead of the system default)
  3. Scrivener ships different versions for different distributions. That sounds scary, but all that needs to do is recompile Scrivener for the two or three currently used Qt versions and map the Qt versions to the distributions.

I have this issue on OpenSuse 11.4, for reference. Somebody made a workaround script which is posted in the release thread for a version or two ago. It will load Scrivener but I can only seem to launch it from terminal and it has recently started to give me an error message and rather slowly. For a couple of days it wouldn’t load at all again. If it helps anyone at all, the script is:

mypath=$QT_PLUGIN_PATH unset QT_PLUGIN_PATH ./Scrivener export QT_PLUGIN_PATH=$mypath

Hi guys. Yes, Scrivener ships with its own version of the Qt libraries and any standard Qt libraries will not work. Qt is using rpath to auto-load its own Qt libraries and not the system ones. Most probably plugins coming with the system Qt libraries are giving you the error of mixed Qt libraries. The script that was unsetting QT_PLUGIN_PATH should be no longer needed from v1.5.0.6 and above. Unsetting the QT_PLUGIN_PATH is now handled inside the Scrivener startup scripts. Unset the QT_PLUGIN_PATH manually or via a script, if you get the above error and you use an earlier Scrivener version.

I get this problem with Scrivener beta 1.5.1.1 on my system (Mint Nadia Cinnamon) after I unwisely installed KDE, which also installed the version of Qt that is giving the problem.

I’m a bit baffled by how to uninstall Qt without also ripping out a whole load of apps that I want to keep! But from tiho_d’s post above I thought that this should no longer be a problem since 1.5.0.6? But it is, for me, with 1.5.1.1.

1.5.0.6 is working well with Mint 13 KDE for me. I just installed Mint 14 KDE on another laptop and can’t get 1.5.0.6 or 1.5.1.1 to work, I’m getting the same error. The library installed is 4.8.3.

All the solutions I’ve seen seem to involve unsetting the QT_PLUGIN_PATH, which shouldn’t apply to 1.5.0.6+. So, I’m also baffled!

I spent some time trying to get this to work, and finally found a workaround. Apparently, the library libQtDBus.so.4 is missing from the Scrivener distribution. Once I downloaded it and copied it into the Scrivener “lib” folder, everything worked fine.

Until the Scrivener package is updated to include the missing library, you can download it yourself from Ubuntu’s launchpad, which stores old copies of the distribution in downloadable form. (Make sure you don’t actually install the library, but unpack and copy the files to the Scrivener lib folder.)

(Also, it would be nice if the tar package were gzipped. That would cut download size in half.)

Thank you so much for the amazing effort (now that I can see it work)!

I can’t find the Scrivener /lib directory. Tried grep and find Scrivener and scrivener and didn’t come up with anything. Do you know the location of the file under Kubuntu?

/usr/share/scrivener/lib

Since Scrivener is conveniently installed as a Debian package, you can just type “dpkg -L scrivener” to find the location of all Scrivener files.

I can’t find the file in Launchpad, maybe you have a Link?
Although what I found on packages.ubuntu.com libQtDBus.so.4 only was a symbolic linking to libQtDBus.so.4.7.4, libQtDBus.so.4.8.1 or libQtDBus.so.4.8.3 depending on the package but still the same inconsistency with libQtDBus.so.4.8.0

Any hint

There is more on this subject here …

https://forum.literatureandlatte.com/t/scrivener-for-linux-1-5-3-1-beta-released-latest/21195/1

Basically if your version of Ubuntu has installed a more up to date Qt library (e.g. by installing Qt Designer, Qt Creator or similar packages) this makes it difficult to install Scrivener due to this incompatibility of Qt libraries.

It seems daft to downgrade Ubuntu libraries just to run Scrivener.

I do have the Scrivener windows version running under Wine on Ubuntu 12.04 but that is a temporary solution.

Hint: google libqtdbus.so.4.8.0 launchpad

The version I used is precise 4.8.0-1ubuntu11. Once you figure out which variant applies to your system (platform etc.) you need to know how to unpack a deb or rpm package (DO NOT install). You can then add the files (it’s the binary and three symlinks, I believe) to your Scrivener lib.

Exactly what I did. The result are some Bug Reports from other context but package of lib-qtdbus, sorry.

I would need the link, cuase I am not capable of finding the package