tags:

views:

39

answers:

2

I am using Qt 4.6.3 with MinGW on Windows to build Qt apps and now need to add a COM interface to my application. I enabled ActiveQt but was getting post-link errors because I was missing a copy of the MIDL compiler. I downloaded a copy of the latest MS Windows SDK, which includes MIDL, but now MIDL complains it cannot find cl.exe. The only conclusion I can draw is that you can only build ActiveQt applications using the MS compiler, which I would rather avoid. Is a way to get this working with MinGW or am I out of luck?

A: 

Well, you can build ActiveQt with MinGW, but using a bunch of COM stuff on top of that may not be possible, because it may or may not be present in MinGW. Some thoughts:

  1. Using any MS SDK tools with MinGW won't work (exception is mingw.org + DXSDK which should work most of the time).

  2. Are you sure you are linking all necessary libraries when compiling? I can't help more if you don't show the exact error messages.

  3. The mingw-w32/w64 project tries to provide a completer "Windows SDK for GCC"; it may contain the libraries/files you are looking for. They provide a x64 and x86 compiler, and pretty good DX support. I have no experience with their COM stuff, but I believe it would be a bit more complete than mingw.org's. You can always contact the developers on the forums or mailing list, they are very helpful.

rubenvb
The app links fine. It's the post-link stage that launches MIDL which is the problem - MIDL wants cl.exe (the MS compiler).
Rob
A: 

You could try the Wine implementation of midl, widl. See the Wine wiki page regarding building on Windows.

If you want to give it a quick run, get wine-prgs-0.9.14-mingw.zip and see how it works.

Cristian Adam