Qt and the Beast...
Before compiling DevIL libraries, I downloaded the Qt 4.5 GPL/LGPL Windows SDK and compiled static Windows Qt x64 Libs under MSVC 2008. http://www.qtsoftware.com/ Qt will allow me to keep my design goals of CrossPlatform (Linux x64/Windows 7 x64) development with LGPL license. I will start off by commending "Trolltech" owned by "Nokia" for having a very elegant application development framework, which I have decided to support due to it's GPL/LGPL, CrossPlatform development prowess and well thought out design along with great levels of documentation and attention to detail.
Initial compilation was quite easy to setup, a path environment variable was needed in Vista.
I also loaded the Qt MSVC 2008 plugin which made integration with MSVC quite good. The only real caveats compiling the libs under MSVC can be described here: http://blog.shadowgears.com/2008/10/making-qt4-dance-with-msvc-2008.html With thanks to the author for providing the most important command line stuff to get me going.
"configure -platform win32-msvc2008"
"nmake"
2 hours later it was obvious there was no multithreading when using "nmake". Some ways to improve this included using the compiler (or linker) switch "/LTCG" this improves performance. Otherwise Trolltech developers have developed there own "nmake" equiv "jom" which does use all available cores. This will no doubt save me some time next time we need to make our libs. http://labs.trolltech.com/blogs/2009/03/27/speeding-up-visual-c-qt-builds/
Now we have Qt64 and all the examples and documentation, plus Qt Designer and QtCreator, Next we start the long process of understanding the Qt SDK and it's abilities. Much time on documentation and code examples as well as thought to my own processes needs to be achieved over the next few weeks.
I have never encountered classes before, So OOP is all new to myself, but it seems like it's the answer to C's shortcomings. Classes are used to store a bunch of data for a specific object that is user defined, the objects can then be reused, either by itself or others as follows. Classes always need 2 functions defined. The "Constructer" and "Deconstructer" I seem to be defining the class in header files, and calling them from .cpp files for convenience and consistency.
Constructers: Initializes the variables of the Class.
Deconstructers: Defined by using "~" called for cleanup when no longer needed.
Public: Any functions, variables or data can be used by ALL of the program. (eg in int main)
Private: Any functions, variables or data can be used ONLY inside the class. (eg. Class:Function)
Protected: Any functions, variables or data can be used ONLY inside or by derived classes.
It's the same thing that makes it great, that makes it not so great!
Initial compilation was quite easy to setup, a path environment variable was needed in Vista.
I also loaded the Qt MSVC 2008 plugin which made integration with MSVC quite good. The only real caveats compiling the libs under MSVC can be described here: http://blog.shadowgears.com/2008/10/making-qt4-dance-with-msvc-2008.html With thanks to the author for providing the most important command line stuff to get me going.
"configure -platform win32-msvc2008"
"nmake"
2 hours later it was obvious there was no multithreading when using "nmake". Some ways to improve this included using the compiler (or linker) switch "/LTCG" this improves performance. Otherwise Trolltech developers have developed there own "nmake" equiv "jom" which does use all available cores. This will no doubt save me some time next time we need to make our libs. http://labs.trolltech.com/blogs/2009/03/27/speeding-up-visual-c-qt-builds/
Now we have Qt64 and all the examples and documentation, plus Qt Designer and QtCreator, Next we start the long process of understanding the Qt SDK and it's abilities. Much time on documentation and code examples as well as thought to my own processes needs to be achieved over the next few weeks.
I have never encountered classes before, So OOP is all new to myself, but it seems like it's the answer to C's shortcomings. Classes are used to store a bunch of data for a specific object that is user defined, the objects can then be reused, either by itself or others as follows. Classes always need 2 functions defined. The "Constructer" and "Deconstructer" I seem to be defining the class in header files, and calling them from .cpp files for convenience and consistency.
Constructers: Initializes the variables of the Class.
Deconstructers: Defined by using "~" called for cleanup when no longer needed.
Public: Any functions, variables or data can be used by ALL of the program. (eg in int main)
Private: Any functions, variables or data can be used ONLY inside the class. (eg. Class:Function)
Protected: Any functions, variables or data can be used ONLY inside or by derived classes.
It's the same thing that makes it great, that makes it not so great!
Comments
Post a Comment