Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What do people need to run my application?

I made a little app and built a release version. Now I want to upload it to my site. I have never done this before with Qt, so I'm unsure as to what I should include along with the binary.

How do I figure out which DLLs should be included with my app? And where do I get them? I'm running Windows, but I'd also like to know what I should do in case I want to release a Linux version.

like image 476
Pieter Avatar asked Dec 06 '10 20:12

Pieter


People also ask

What makes an application stand out?

One of the best ways you can make your application stand out is to make it more findable. This involves using specific keywords for skills that recruiters or hiring managers might be looking for in your resume and cover letter.


2 Answers

For windows:

You can use dependency walker to see what Qt libraries (or others) you should ship. This is the depends.exe executable that is included with Visual Studio, but you can download it separately from: http://www.dependencywalker.com/

Load your app into that and it will list out all the modules it expects at runtime. You might also have to ship a Visual C++ Runtime Redistributable compatible with the compiler that you built the executable with (if it's VC++).

Do note that dependency walker does not account for things like Qt's plugins. An example of this would be the QtAssistant system (for help menu-type functionality), which as of Qt4 relies on Qt's sqlite functionality, which is typically built as a plugin (qtsqlite4.dll if I remember).

For Linux:

This is trickier because of wider disparities in Linux distributions. You can of course use the GNU build system if you want to ship source, but if you're shipping binaries, and want to support a variety of distros, you might do best to build packages for each platform you want to release on.


In my past, a company I worked for switched to using cmake and after setting up all the project and build files, used that to generate builds and packages for different OSes. On Windows, this meant hooking in with Inno Setup, and for Unix-like systems, cmake knows how to generate things like installable shell scripts. Definitely made life much easier.


Our QA department would test our software in virtual machine instances of our supported platforms, completely clean, and see if anything was missing.

like image 101
逆さま Avatar answered Sep 28 '22 08:09

逆さま


If you're talking about DLLs, I assume it is about Windows.

Use Dependency Walker to see the DLL dependencies.

Or... take a clean system, with no dev tools installed, and put your executable, try to run it there, and see what DLLs are reported as necessary and inexistent. Put the DLLs near the executable.

like image 42
Cătălin Pitiș Avatar answered Sep 28 '22 08:09

Cătălin Pitiș