I made an application in code blocks that loads images. These images are in folder, placed in root directory of the .cbp file. When I compile & run the application, the images load without a problem. However, when I launch the application from the debug folder (where app is created), the images aren't loaded. Am I doing it the right way? I mean, isn't there a button to finalise an application that would prevent this issue?
Thanks.
If the Debug Folder is in the same directory as your cbp file, and the executable is in the Debug folder, do: "../Folder/pic" You see, ".." basically means "look one directory up"
Edit: Alternatively, you could copy the folder with your images to the Debug Folder too. Then it would be in the so called "working directory" of the application again.
Related
I am using the Atom text editor to write c/c++ codes. By default I need to save all my programs in the C:>.atom> packages> MinGW> bin folder.
Now, I want to change the location where my programs are stored to a new folder which is comfortably placed in say, C:> My Programs. This works fine in CodeBlocks and before creating any console application there, I can choose the location manually and therefore all my programs are neatly arranged in the folder C:> My Programs that I have created. But, when I try to place a program anywhere other than the C:>.atom> packages> MinGW> bin folder or simply try to open a previously created program (with CodeBlocks) from the C:> My Programs folder, this error pops up in Atom -
'g++' could not be spawned. Is it installed and on your path? If so please open an issue on the package spawning process.
I don't know what to do.. How can I 'tell' the gcc compiler that look into this file rather than the default?
Can anyone please guide me through the steps?
Thank you so much.
I have built a very simple calculator in Qt. When I run it in release mode from qt creator, everything works fine. However when I go to the release folder and run it, it gives QT5Core.dll, QT5Widgets.dll and QT5Gui.dll not found. After running windeployqt there by:
windeployqt .
All the dll get added. However, it then gives error VCRUNTIME140_APP.dll and MSVCP140_APP.dll not found. After copying them to the folder. The exe doesn't give any error on double clicking but just does not start. What should I do?
I found this solution here, however I cannot find any qml file in the application directory.
I created it as a QT widget application. I am using Windows 10 with Visual Studio 2017 and MSVC2017 64bit desktop kit. The application is in C++.
Update:
Running the command
windeployqt Calculator.exe
after adding qt to the path seems to do the trick. Application working even after removing qt from the path. Will try running the app inside vm just to be extra sure.
When running from the command line, add your Qt Bin directory to the PATH. For example:
C:\> PATH=C:\Qt\Qt5.11.0\5.11.0\msvc2017_64\bin;%PATH%
You can solve the problem as selbie described it. An another way is to copy the missing .dll-Files to the folder where the.exe is placed.
See here https://doc.qt.io/Qt-5/windows-deployment.html#creating-the-application-package :
To deploy the application, we must make sure that we copy the relevant Qt DLLs (corresponding to the Qt modules used in the application) and the Windows platform plugin, qwindows.dll, as well as the executable to the same directory tree in the release subdirectory.
set variable VCINSTALLDIR, example:
set VCINSTALLDIR=p:\Programs\Microsoft Visual Studio\2017\Community\VC\
and next run
windeployqt.exe app.exe
Or copy vc_redist.x64.exe from Redist subfolder into folder with your application.
As #mosa mentioned, To deploy the application, we must make sure that we copy the relevant Qt DLLs (corresponding to the Qt modules used in the application) and the Windows platform plugin, qwindows.dll, as well as the executable to the same directory tree in the release subdirectory.
To add missing .dll files first open QT MSVC Console and type windeployqt.exe command,
Then you have to go to the directory which .exe file contains. Let's assume my .exe is in the desktop,
C:/
cd user/indrajith/desktop
Then you can add missing .dll files using following command,
windeployqt.exe --quick.
Finally, just double click your .exe file to run the program.
Simple Solution:
Copy "bin" and "plugins" folders from the qt setup directory(C:\Qt\6.2.4\mingw_64) to your release folder.
Put your .exe file inside that "bin" folder and done.
Now, your .exe application should run.The bin and plugin folders contain required .dll files and unnecessary files can be removed manually.
I've build qt for static linking to make just one exe without any dll's, configured creator. On my computer everything works. But when i run a program on other computers nothing happens. Process starts, but nothing is shown. And it's only with qml, it works with c++ projects.
I tried to make a simple exe and add all needed libraries by windeployqt, but it doesn't change anything.
Maybe someone can tell me, what am i doing wrong?
I have found that with QML applications you might need directories from the following directory:
..\Qt5.3.2\5.3\msvc2013_opengl\qml\
The directories needed depends on what you have included.
For my application I had the following structure:
my.exe
QtGraphicalEffects
QtQuick
QtQuick.2
First run the mingw on cmd terminal of windows (on my case it is on C:\Qt\6.1.1\mingw81_64\bin).
After this go to your project output (where is your .exe file that you want to run on another windows machine).
Run the windeployqt command:
windeployqt.exe --qmldir C:\Qt\6.1.1\mingw81_64\qml .
I run the example project "Qt Quick Application - Scroll".
The blank screen only happens on PCs that do not have a video card with OpenGL 2.0 support.
Try this:
1. Used dependency walker(http://www.dependencywalker.com/) to see the exact path of the dlls needed. Try it because both QtCreator and QT framework both have the same dlls and you must pinpoint the exact ones used. I copied all dlls needed in the same folder as the app.
2.I have copied the folder platforms from QT framework /plugins and copied it in the same folder as the app. Now the app comtained also plugin/platform/ folder with all its dlls
3.And the most important step in my case is to create a file named qt.conf in the same folder as the app . This file should contain the path to the plugins. My qt.conf file contains:
[Paths]
Libraries=../lib/qtcreator
Plugins=plugins
Imports=imports
Qml2Imports=qml
Try copying every DLLs in below folder to the folder where your exe is.
C:\Qt\x.x.x\msvc20xx_xx\bin\
If the exe runs normally, try deleting the DLLs some by some to find out what dll is needed and what is not needed.
I'm not able to execute the .exe file form the debug or release folder outside of Qt.
I have followed the suggestion in this and copied qminimal.dll , qwindows.dll to a platforms folder together with the executable but nothing happens when I click on the .exe. No error messages or anything. Any suggestions?
EDIT:
According to Dependency Walker I need these files to run the .exe
I do have all these files in the same folder and still nothing is happening.
I have a c++ opengl project that uses glut. It runs fine in my computer, but I need to be able to run it on a lab computer. When I try to do this, it tells me the glut.dll is not installed, but I do not have the privileges to put the file in the proper system folder on the computer. Is there anyway I can store the file with my game, and point to it in my project?
Thanks
Add required dlls to your project and set property to copy local.
Executable looks for dlls in folders listed in $PATH and in the folder with exe file.