[Development] [5.7-beta] qtgamepad compile failure

Thiago Macieira thiago.macieira at intel.com
Thu May 5 18:22:04 CEST 2016


On quinta-feira, 5 de maio de 2016 13:39:59 PDT Tim Blechmann wrote:
> compiling the qt-5.7-beta tarball with msvc2013/64bit/static libraries,
> out-of-tree build gives me:
> 
> ---
[cut]
> h:\qt3rd\qtgamepad\src\gamepad\qgamepadmanager.h(42) : fatal error
> C1083: Cannot open include file: 'QtGamepad/qtgamepadglobal.h': No such
> file or directory
> qgamepad.cpp
> 
> ---
> 
> i know ci builds with dozens of configurations are impractical and
> require a significant amount of buildserver resources. but it would be
> great if tarballs could be tested with non-standard configurations ...
> namespaced qt, static libs, out-of-tree builds, slightly older compilers
> ... all these configurations are often broken in released tarballs. i
> suppose both qt devs and users would save quite some time and
> frustrations, if these configurations could be tested as part of the
> process of releasing a tarball.

Hello Tim

It should have been. That's why we have a release team that does sanity 
checking on the packages and releasing isn't just "make a git tag and create 
packages". Though it's also true that a beta release receives less attention 
than a full one.

One thing, however, struck me in your description: you said you're building a 
*tarball* with MSVC2013. Does it mean you downloaded the .tar.gz or .tar.xz 
file for Windows? If so, be careful with line endings.

I've just downloaded qt-everywhere-opensource-src-5.7.0-beta.tar.xz and 
confirmed that qtgamepad/include/QtGamepad/qtgamepadglobal.h is present. Given 
the paths your build shows, I'm guessing you unpacked the sources in H:/qt3rd, 
which means this file should have ended up in 
	H:/qt3rd/qtgamepad/include/QtGamepad/qtgamepadglobal.h

Is that correct?

Your command line had:
	-IH:/qt3rd/qtgamepad/include -IH:/qt3rd/qtgamepad/include/QtGamepad
	-I..\..\include -I..\..\include\QtGamepad

So I have to ask: how did it *not* find the file? If your output is correct, it 
should have found by concatenating that first -I with the path being sought, 
which tells me that the difference may be a non-visible character, like a 
line-ending.

Can you confirm that the command-line you pasted refers to the file that failed 
to build? There's a "jom" command in the middle of the output, which means 
that you used jom and that it was doing parallel builds, so it's possible that 
it referred to something else. As a rule of thumb, if a parallel build fails, 
rerun with -j1 to get the actual first error with no reordering.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list