[Qbs] qbs 1.8.1 cannot find Qt.core

Christian Kandeler christian.kandeler at qt.io
Mon Jul 10 10:55:42 CEST 2017


On Mon, 10 Jul 2017 10:24:33 +0200
Elyzabeth von Reuenthal <elyzabethvonreuenthal at iserlohn-fortress.net> wrote:

> Ever since I updated to qbs 1.8.1, I get the following message in QtCreator:
> > Failed to set up kit for Qbs: Setting up Qt profile 'qtc_Desktop_ca73bbd0'
> > failed: Cannot open file '/usr/lib/QtGui.framework/Headers/qtgui-config.h' (No
> > such file or directory).  
> Running qbs directly however doesn't produce any errors and works as expected.
> 
> I'm running archlinux, with qbs 1.8.1 and qtcreator 4.3.1. Downgrading to qbs 
> 1.8.0 fixes this.

I am observing the same bizarre issue on ArchLinux.

> Is this a qbs issue, a qtcreator issue, or a packaging issue?

Good question. Here's what I've found so far:
    - The path with the framework component is used if and only if
      QtEnvironment::frameworkBuild is true.
    - Qt Creator sets this flag to the value of BaseQtVersion::isFrameworkBuild().
    - This flags can only be true if the CONFIG value of the respective Qt version
      contains "qt_framework".
    - All code along this path looks fine at first glance.
    - Trying to reproduce the problem by building Qt Creator myself on the very
      same ArchLinux installation failed: Everything worked fine with this one.

In conclusion, I see two possible reasons for the problem:
    - We have a subtle case of undefined or at least non-deterministic behavior
      in the relevant code path. I don't see it, though.
    - Something went wrong when building the distribution package (buggy compiler?).
      Seems like a long shot, but stranger things have happened. 

Now that I think of it, I notice I used clang in my aforementioned attempt to reproduce the problem. I'll try again with gcc 7.


Christian



More information about the Qbs mailing list