[solved] building a “standalone” program
I’m currently using Creator to build a couple of programs that don’t use any of the Qt libraries or classes (“Empty Qt Project”) in the “New” dialog). Once I build the program, I rename the QtSDK directory (so it can’t find any of the libraries), but when I attempt to launch from Creator, I get an error that the path to qmake.exe isn’t found. Why is Creator trying to find qmake.exe when I’ve already built the program? This program does launch successfully from a CLI.
And another question: I have a second program, that (I think) is built with identical build/run/environment settings, but this program won’t even launch from the CLI (even when the QtSDK directory is properly named). I’ve copied the same .dll files to its directory as I added to the directory of the program that works. But, the first program runs fine (from the CLI) and the second one just immediately returns the CLI prompt.
Any tips on how I can chase down what’s going on here? I’ve run Dependency Walker, but it’s not giving me any information that I find meaningful.
Thanks for any help; this is getting aggravating.
Try emptying ‘Qt Versions’ under Qt Creator -> Tools -> Qt4. It should have a path or link to qmake.exe. You may want to try deleting this entry.
If you built the program, you must be having the binary (either in debug or release folder), which you can execute from explorer. Am curious to know why do you want to launch it from Creator?
Have you put any qdebug statements or any message box kind of thing to see whether something comes up during error. Or simply, what does second program do?
Hi, veeraps. I can’t find anything called “Qt4” under “Tools.”
As for why I want to launch from Creator:
- I love the IDE and wish to continue using it for development
- While right now I’m not using the Qt libraries, this will soon change
- I’m trying to encourage customers to adopt Qt, and I need to be their “answer man” on things that come up with it
But…the issue isn’t launching from Creator…I can do that. My problem is the program that won’t launch from the CLI. I need to fix this ASAP.
Pardon me it is under Tools -> Options -> Qt4. I use Qt Creator 2.2.1.
What does your second application do? Is it a GUI application or non GUI application? I am sure if some .dll file is missing, you might get run-time errors, are you not getting it?
On a side note, I would suggest there is another IDE – Eclipse (think you might have heard it as well) Eclipse-Indigo [eclipse.org], which you can use it if you are doing C++ development. Infact I pretty much like it.
I still don’t have anything called “Qt4” in Options. Under Creator -> Tools -> Options -> Build & Run I can get to “Qt Versions,” but the only version in there is an Auto-detected one that I can’t delete. (Nor do I think I’d want to.)
The second application is purely CLI at the moment. When I try to invoke it, the CLI prompt just returns immediately. I’m pretty confident that the program isn’t even loading.
And yes, I’ve heard of Eclipse. A fine IDE, but I’m somewhat invested in Creator and would prefer to remain with it. Whatever this problem is, it’s almost certainly nothing that will drive me away from Creator.
Yes! my mistake again – it cannot be deleted – but it says ‘Qt in PATH’, so I tried deleting the Qt bin path in my PATH variable.
After deleting it, I found that ‘Qt in PATH’ reads as <not found>. Then I noticed at the top mean the header, it says that ‘qmake location’. I presume Qt Creator needs a ‘qmake’ location.
My last option to try would be – try to remove Qt bin path in your PATH variable and try executing Qt Creator – am not sure it will work though.
I was just curious why Qt would need qmake to launch an already built program.
As I understand it, when you try to run a program in Creator, it still attempts to rebuild if necessary. This is why you don’t have to hit the “Build” button and then the “Run” button when developing apps in Creator. Since qmake is an intrinsic part of of the build process, I’d guess that’s why it is complaining.
Another data point: I hex-edited my executable, searched for “.dll” and came up with these:
I have copies of 1 and two in my executable folder; I was told I don’t need 3 and 4.
5 is a mystery. I can’t even find it on my system. And googling doesn’t turn up much about it. Can anyone tell me something about this file, and why my program seems to be referencing it?
Yeah, I understand. Someone told me it might be a side of effect of using the 32-bit version of MinGW on a 64-bit system. I tried adding my 64-bit version of the compiler to my tool chain, but I’m not able to get it ahead of the one it finds automatically. I’ve put a path to the 64-bit version ahead of the path to the one in QtSDK in my PATH variable, and even renamed the QtSDK directory to block access, but it still comes up with \QtSDK\mingw\bin first in the list. Any ideas on this?
The problem was in the .pro file. Evidently, failure to explicitly exclude Qt from the configuration resulted in a few references to Qt functions somewhere in the binary. The winning .pro code is:
- CONFIG += CONSOLE
- CONFIG -= qt
Thanks to everyone for the assistance.