Before the weekend I started looking at using Qt on Windows. More specifically I wanted to know whether this combination could be an option for a sub-project at work. We need to develop a program for the Windows desktop, and due to the overall context it would make sense to write it in C++ (that’s what we use for another part of the project). We already use both Eclipse and Visual Studio in the project, but I strongly prefer Eclipse, so I was hoping to be able to use it. However, it seems that the Qt developers strongly favour their own tool Qt Creator, though there are (outdated?) integrators for both Eclipse and Visual Studio. I’d rather avoid introducing a third IDE into a project—two is already one too many in my opinion. Anyway, I think I managed to find an acceptable configuration of Eclipse without using that old Qt integration plugin together with the MSVC (I was using the gratis version of MSVC for this).
I decided to install Qt into
C:\QtSDK, and then I made the following permanent changes to the environment:
> set QTDIR=C:\QtSDK\Desktop\Qt\4.8.0\msvc2010
> set QMAKESPEC=%QTDIR%\mkspecs\win32-msvc2010
> set PATH=%PATH%;%QTDIR%\bin;C:\QtSDK\QtCreator\bin
Starting Eclipse so that it finds the compiler
It’s slightly disappointing that Eclipse happily lets one create MSVC project that isn’t buildable because it doesn’t know where the compiler is located. One easy way to remedy that seems to create a BAT file to create the proper environment for Eclipse:
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
Creating the project
Creating a “makefile” project in Eclipse is fairly straight forward; one needs a C/C++ project, of the makefile type, and make it empty too so that there isn’t any cruft in the way. Then add a single source file, e.g.
int main(int argc, char **argv)
std::cout << __FUNCTION__ << std::endl;
QApplication app(argc, argv);
And then a project file, e.g.
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += .
CONFIG += qt
SOURCES += main.cxx
After this use
qmake to create the required makefile. I decided to use a subdirectory (
_build) in the project, which
qmake seems to have full support for:
Setting up building from Eclipse
In the project properties modify the C/C++ Build settings for the Debug target. Instead of the default build command (which is
make) one can use
nmake, or even better
- Build command:
C:/QtSDK/QTCreator/bin/jom -f Makefile.Debug
- Build directory:
Then one can create a Release target, which differs only in that it builds using
qmake from inside Eclipse
It’s very convenient to be able to run
qmake and re-generate the makefiles from inside Eclipse. One can set that up by adding an external tool:
- Working directory:
I plan to also have a look at the Qt Visual Studio Add-in, though I suspect we might be using the latest version of VS, which might cause trouble.
Suggestions for further integration with Eclipse would be most welcome, e.g. for forms and translations.