Shame on me, I had almost forgotten this software, SourceHighlightIDE, an IDE for GNU Source-Highlight, that I hadn't even released version 0.2! Well, this software still lives :-) and I've just released version 0.3, which, besides many improvements to the GUI, can now handle the new debug output of Source-Highlight.
Wednesday, February 25, 2009
SourceHighlightIDE 0.3
Pubblicato da betto a 8:50 PM 0 commenti
Etichette: source-highlight, sourcehighlightide
Tuesday, February 17, 2009
Compiling Qt with MinGW in MSYS
Since I wanted to port some Qt4 applications (I always developed under Linux) in Windows, I downloaded from the trolltech site the Qt libraries for Windows (already compiled) which come with a minimal MinGW compiler to build windows applications. This was the first time I was using mingw, since I've always used cygwin instead.
The Qt installation comes with a start menu item called Qt Command Prompt, which sets all the environment variables for you in order to start building Qt applications.
However, being used to the comfortable Unix shell, I couldn't stand using the DOS command shell, also because I wasn't willing to use qmake: I need to use autotools instead. Thus, I installed also the mingw shell: msys.
I tried to build a Qt tutorial example with qmake in msys, and here comes the bad surprise: the Makefiles generated by qmake contains windows paths (e.g., for calling the moc compiler), which the Unix shell does not understand. Here's a screenshot with the error:
I tried to build a Qt tutorial example with qmake in msys, and here comes the bad surprise: the Makefiles generated by qmake contains windows paths (e.g., for calling the moc compiler), which the Unix shell does not understand. Here's a screenshot with the error:
Everything works fine if you don't use the moc compiler, but as soon as Makefile invokes it, you get the error due to the windows paths:
That's what I've done, downloading the sources of Qt and compiling the libraries from msys.
IMPORTANT: I wasn't able to compile the Qt libraries with the standard MinGW distribution; I had to use the MinGW that comes with Qt installation (i.e., the file qt-win-opensource-4.4.3-mingw.exe).
I did this procedure:
C:\Qt\4.4.3\bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/Qt/4.4.3/include/QtCore' -I'c:/Qt/4.4.3/include/QtCore' -I'c:/Qt/4.4.3/include/QtGui' -I'c:/Qt/4.4.3/include/QtGui' -I'c:/Qt/4.4.3/include' -I'c:/Qt/4.4.3/include/ActiveQt' -I'debug' -I'.' -I'c:/Qt/4.4.3/mkspecs/default' -D__GNUC__ -DWIN32 cannonfield.h -o debug/moc_cannonfield.cppI then asked on the nice qtcentre forum, and they pointed me to this blog post where they says it's a well known problem, and that recently Qt can be used also from msys (since qmake will generate Unix shell paths). What wasn't clear to me was that you must recompile Qt libraries yourself to make it work also from msys.
make[1]: C:Qt4.4.3bin/moc.exe: Command not found
make[1]: *** [debug/moc_cannonfield.cpp] Error 127
That's what I've done, downloading the sources of Qt and compiling the libraries from msys.
IMPORTANT: I wasn't able to compile the Qt libraries with the standard MinGW distribution; I had to use the MinGW that comes with Qt installation (i.e., the file qt-win-opensource-4.4.3-mingw.exe).
I did this procedure:
- Set some environment variables (assuming that you unzip the sources in C:\qt-win-opensource-src-4.4.3:
export QTDIR=/c/qt-win-opensource-src-4.4.3/
export PATH=/c/qt-win-opensource-src-4.4.3/bin:$PATH
export QMAKESPEC=$QTDIR/mkspecs/win32-g++ - then you can run configure.exe (this will create the qmake binary and all the Makefiles)
- now run make and wait for about 3 hours!
Couldn't reserve space for cygwin's heap...
(I don't know why this happens, but restarting make simply keeps on compiling from where it left).
Now, if no other errors take place, you'll have your compiled Qt libraries, and binaries, that generate the right Makefiles.
Now, if no other errors take place, you'll have your compiled Qt libraries, and binaries, that generate the right Makefiles.
Remember to always set the above environment variables (e.g., in your ~/.profile), so that you'll use your version of Qt.
By removing the previous Makefiles, running qmake again (this time it will generate Unix paths to executables), and then make, everything works fine, and you can build qt applications from the comfortable Unix shell: indeed, now, the moc invocation command line is:
C:/qt-win-opensource-src-4.4.3/bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I'c:/qt-win-opensource-src-4.4.3/include/QtCore' -I'c:/qt-win-opensource-src-4.4.3/include/QtCore' -I'c:/qt-win-opensource-src-4.4.3/include/QtGui' -I'c:/qt-win-opensource-src-4.4.3/include/QtGui' -I'c:/qt-win-opensource-src-4.4.3/include' -I'c:/qt-win-opensource-src-4.4.3/include/ActiveQt' -I'debug' -I'.' -I'c:/qt-win-opensource-src-4.4.3/mkspecs/win32-g++' -D__GNUC__ -DWIN32 lcdrange.h -o debug/moc_lcdrange.cpp
and you can run the Qt application :-)
Pubblicato da betto a 9:30 AM 5 commenti
Subscribe to:
Posts (Atom)