Launching app outside of Creator?
-
There appear to be two shared libraries needed by my app:
- mingwm10.dll
- libgcc_s_dw2-1.dll
I first tried moving them to the same directory as the .exe file, and then modified my path variable to reflect their original location (restarting Creator to get the changes to take effect). Now, when I double click on the .exe file, I no longer get an error message, but...nothing seems to happen.
I realize this isn't really a deployment question anymore, but is there a way to find out what happened to these program launches?
-
Did you try the dependency walker, what I mentioned above? Without you don't know your dependencies!
-
If you say it is a console only application, without a GUI, what kind of output do you expect exactly? What happens if you run the application from a command prompt?
-
[quote author="Andre" date="1329828263"]If you say it is a console only application, without a GUI, what kind of output do you expect exactly?[/quote]
Well, first of all, I expect the program to take about two minutes to run. That's how long it takes when launched from Creator. I also do write some minimal output to cout, which shows up in the "Application Output" area of Creator.
[quote]What happens if you run the application from a command prompt?[/quote]
After a few seconds, the prompt returns.The input and output files to be used by the app appear untouched.
I wonder: I do use relative pathnames for my filenames in the app. Is it possible that when the app is launched from Creator, it "thinks" it's in a different directory? (I know I'm reaching here, but it seems like this might stem from an inability to open files.)
Is there a way in Windows to temporarily re-route the cout to a file? I have error messages in the app when a file open fails.
-
Hi, Scylla -
I just tried dependencywalker. It does identify some files I wasn't aware of, and that might warrant a closer look.
But, doesn't Creator just use the system/user environment variables to construct its path? If not, what does Creator do differently that allows it to find these files?
EDIT:
It appears that all the needed files are in one of two directories:
- C:\windows\system32
- c:\qtsdk\mingw\bin
and both of those directories are in my PATH variable.
-
Take a look at the project-->Run Settings-->Run Environment, there you can see which variables are set from Qt Creator to run the app with correct path.
-
You're talking about variables other than path, right? There are no environment variables unique to the run environment (all are inherited from the build environment).
In the build environment, all but two variables are inherited from the system environment. Those two that aren't are PATH and QTDIR. But everything listed in the build environment PATH variable is already in the system environment.
Again, can I re-route my cout somehow to make it visible to me? It would tell me if I'm not finding an application file.
-
Now I don't know what's your problem is ;-). What do you want to know?
I thougth you want to start you app without the development environment, isn't it?
If this is wat you want, you have to put the Qt lib's in the same folder as the *.exe. Furthermore you need in this directory "mingwm10.dll" as well as the "libgcc_s_dw2-1.dll". Last two dll's are needed because you are using the mingw32 compiler. If your app needs a plugin like sqlite or jpeg, you have to put the needed plugins in this folder too. But the plugins need a special format i.e. sqlite plugin: sqldrivers/qsqlite4.dll.
If you now have all dependecies resolved, you app should start. You should see with dependeny walker, that there is no "external" dependency like "c:\system32". -
[quote]I thougth you want to start you app without the development environment, isn’t it?[/quote]
Yes, that's it exactly. I'd like the user to be able to double-click on the .exe file and have the app run, and/or start it from the command line.
And, this particular app doesn't use any Qt libraries. It's just a plain .cpp program.
I did try this with the two files you mentioned in the same directory as the app. The app no longer gives me an error, but it also doesn't run.
So, I'm obviously missing something, which is probably quite elementary, because I'm pretty ignorant of Windows. This is why I was asking whether I could re-route my cout calls so I can see them. It's possible the program is starting up, running into an immediate problem (like a data file not found) and quitting, but...I have no visibility into this as it is.
-
Is this a commandline tool? Did you start your app from cmd.exe?
-
I tried both. I double-clicked on the executable from a window, and I tried to run it via cmd.exe. Same results (nothing).
-
Can you provide the app, so I can test it?
-
I appreciate that offer. I need to supply some needed data files, but first I need to truncate them. Give me a little time. Once I have this ready, what's the best way to convey this to you?
-
For me it's easier to test it by myself ;-).
On the other hand you can provide more details to your app. I suppose it run from within QtCreator, isn't it? It's a pure c++ app? You use the mingw32 toolchain? If you use QtCreator, how looks your pro file? You can show a picture from dependency walker. Do you use mingw32 dll's version from Qt SDK? a.s.o. .... -
OK, how about I email you the .exe and the .pro file? You can't run it without the input files, but maybe you can learn something about it.
Yes, it's pure C++, and I'm using the mingw32 tool chain (can't get Visual Studio to work, but that's a problem for another thread).
-
I sent you a pn ;-)
-
Replied via email. Thanks!
-
Sorry but I didn't receive any email :-(.
-
Just sent it again. It has about 5 MB of attachment, so maybe it's hitting your spam filter?
-
5MB should be no problem. There is still no mail :-(. You can try a file hoster like "mediafire":http://www.mediafire.com/ .