[Qt-creator] Some thoughts about 2.5

Vojtech Kral vojtech at kral.hk
Thu May 31 11:54:20 CEST 2012


On 2012-05-31 06:55, Geronimo Ma. Hernandez wrote:
> Well, as a user, I think different - completely!

   I am sorry, but if that is the case, then you simply don't
understand how projects are built in C++, mostly speaking about
Qt-related and/or cross-platform-related conventions.

   I suggest you read Konstantin's e-mail one more time,
it explains things nicely.

   You suggest that level 3 (you call it "professional")
is somewhat superior to the level 2, but I didn't really
find any compelling arguments as to why should level 3 be
so good, why should QtCreator try to achieve it,
I don't really see any good reason to do that.


> As a user, you don't have the care about the complexity of the used 
> makefile
> structure or how netbeans handles any build tasks.

   Qt Creator is primarily targeted at Qt projects and non-Qt but 
usually
cross-platform projects. The way you set up projects in NetBeans using 
GUI
would not work in this case or it would be at least extremely 
cumbersome.

> You have the possibility to enter any compiler switch and any library 
> your
> build depends on.

   You probably don't realize what that really means. Let me try to 
explain:

   1. Compiler switches:
   The fact that you want to enter a compiler switch
manually is itself suspicious. Why do you want to do that?
   Most build systems set up all commonly needed compiler switches for 
you
automatically, you need custom switches in only specialized cases,
which I doubt is your case, since you're a beginner in C++.
So what are those switches you claim to need?

   There's one more thing you don't understand about compiler switches:
They are very different for each compiler. So if you enter switches for
one compiler, it won't work with another compiler.
   That's why we use build systems like qmake or CMake, they can detect
the compiler and use apropriate switches.

   2. Libraries:
   The task is not as simple as just "entering a library name".
   There are aditional problems: Where should the linker look
for the library? What to do if it's not found? Should RPATH
be used, and if so, what should it contain?
   The programmer usually specifies in build system scripts how
these problems are resolved. Also different settings apply for
different setups (debug vs release,...).

   Do you want to see an example? If you want, you can check out
https://github.com/kralyk/eldorado/blob/master/CMakeLists.txt
(It's a project I'm partly working on.) You can go through all the 
CMakeLists.txt
files (there is not just one, there a more with each add_subdirectory() 
command)
and you can see for yourself that it gets a bit more complicated than a 
GUI dialog.
You can also see that it's practicaly infeasible to convert it 
automatically into
a different build system.
   And that's just a simple library, there are much more complex 
projects (KDE4,...).

> Additionally netbeans uses a 'private' directory structure for the 
> build and
> does not vomit all generated build-help-files between the sources. 
> Well done!

   Others have told you already, but you still have to use inapropriate 
language?
A bit uncalled for. If you consider the generated files "vomit",
you can configure QtC and/or the build process to "vomit" them 
somewhere else.





More information about the Qt-creator mailing list