Windows, QtCreator, cmake and environment: a thing to watch.

• Mar 3, 2010 - 23:55

Maybe it is old stuff for you, maybe it only applies to my setup, but as I lost several days after strange problems, it might be useful to know.

If you compile under Windows using the QtCreator interface to cmake, beware that it creates a configuration file CMakeLists.txt.user parallel to the main CMakeLists.txt file in the mscore/mscore folder.

This file caches lots of data about the configuration and the environment; if some of the cached data become no longer valid, Qt Creator may crash when loading the session containing the project. It happened to me when the system PATH variable changed (I was playing with SVN clients). Even deleting the session or removing the build folder did not help.

The solution has been to delete the CMakeLists.txt.user file. This usually requires a full re-build.

Hoping it may be useful to someone else too,

M.


Comments

In reply to by [DELETED] 5

Qt SDK 2010-02, which includes Qt Creator 1.3.1 and Qt Library 4.6.2 under Windows XP.
Qt SDK 2010-01, which includes Qt Creator 1.3.0 (IIRC) and Qt Library 4.6.1 (IIRC) under Ubuntu 9.04 (IIRC, because my Ubuntu machine is currently booted under Win).

I can compile and debug perfectly under Windows (well, GDB is slow under Windows, but it works anyway).
On the other hand, in Ubuntu, once the programme hits a breakpoint, it remains sleeping indefinitely, without any way to restart it; this is why I switched to Windows as musescore debug platform.

M.

In reply to by [DELETED] 5

UPDATE

I forgot to mention: there a (small, as far as I'm concerned) problem while debugging under Windows: as the Qt own .h files are not #included in the sources, their definitions are not available.

For instance, in the file I'm looking at right now, plugins.cpp (surprize!), line 42 is marked with a warning (underlined in yellow) and the tooltip says " 'QFile' is not a type name"; also, QFile members are not available for auto-completion and the like. Similar for most Qt definitions.

This is relatively a small issue while debugging (should I write extensive new code, it would be different, but luckily this is not the case (yet?) ).

M.

Do you still have an unanswered question? Please log in first to post your question.