Solved Qt resource not showing up in static build...
-
So I need a subdirectory in my source folder? I'll try that.
EDIT: just moved logo to a subfolder, rebuilt and now I'm getting an error:
[release/qrc_resources.cpp] Error 1
So I deleted the moved file and re-added it. Still getting the null pixmap error.
-
@mzimmers said in Qt resource not showing up in static build...:
just moved logo to a subfolder, rebuilt and now I'm getting an error:
Not any subfolder, looking at the screenshot you need a folder called
logos
under your project root. Then readd the file and I think it should work. -
@kshegunov no joy.
EDIT: put some text in here to separate the pics.
But at least now it's missing from both the debug and release versions...
-
But now your resource tree looks funny, you have two folders named "logos" there ...?
-
OK, I obviously don't know what's going on here. The resource editor requires me to add a prefix before I can add a file. When I add the file, if it's in a subdirectory, that gets prepended to the file name. This is why you're seeing what appears to be two levels of folders.
I don't know how to do this differently.
-
Ah, okay. That's why I'm saying it's damn clumsy. Add only a
/
as prefix and then add your file. It should fix the double folder thing. -
@kshegunov alas, that didn't work, either. You're right, though...this is one awkward interface.
-
You mean it didn't fix the double folder thing or you still can't load the image?
Your resource file should look something like this:
Then you'd load with
:/images/20171022_152431.jpg
. -
Yes my resource file looks similar to yours. The image displays when dynamically built, but not static.
-
Could you try with a static/debug just for the sake of it, to be honest I'm at a lost as you seem to have done everything right.
-
Static/debug doesn't display the image, either. So I'm doing something wrong with the inclusion of resources into a static build...?
-
Yes, this would be my best guess. Could you look inside the build folder and see if there's a file
.rcc
named after yourqrc
file? Perhaps it's not linked with the binary for some reason ... -
No .rcc files anywhere. Well, thanks for looking; I guess I'll punt on this for awhile.
I did try another image type (.jpg) just to be sure...same results.
EDIT: I probably should point out that I have a warning associated with my static version of Qt: "No qmlscene installed." I really can't imagine that this is affecting anything, though.
-
No .rcc files anywhere. Well, thanks for looking; I guess I'll punt on this for awhile.
Sorry I couldn't be more helpful, perhaps someone else might have an idea, something I didn't think of.
-
I wonder...is it possible that this isn't Qt's fault? That the fault is somewhere within the toolchain? I guess I could try to build my app on Linux or a Mac to see...that'll take a little time, though. Just an idea...
-
Yes I guess it's a possibility, although probably a remote one. MSVC or MinGW? Because if it's mingw I'd expect it to behave pretty much the same as linux's g++. I'd compile it for you on linux, but the trouble is I don't keep static Qt builds around, I don't believe in static builds so to speak ...
EDIT:
Waaaaaiiit!
Did you load the image plugins in your binary with Q_IMPORT_PLUGIN? -
@kshegunov it's MinGW. This isn't an area I'm especially knowledgeable in, but it seems that it's the toolchain (specifically the linker) that decides what does and doesn't go into an executable.
By the way, if you avoid static images, how do you deliver standalone apps to customers?
-
@mzimmers said in Qt resource not showing up in static build...:
By the way, if you avoid static images, how do you deliver standalone apps to customers?
You can use an install maker
to deliver the .exe and its support dlls.
Qt even has its own tool
http://doc.qt.io/qtinstallerframework/Static linking requires a Qt license so many of us , do it via an installer.
-
@mzimmers said in Qt resource not showing up in static build...:
By the way, if you avoid static images, how do you deliver standalone apps to customers?
One of the ways is to compile them in the binary, but as @mrjj noted you can also use an external (compiled) resource file and also you could possibly use an installer that delivers them raw in folders.
What about theQ_IMPORT_PLUGIN
question? -
@kshegunov I didn't see your plugin question until now...the answer is no, I didn't do that.
What exactly is the plug-in here: the .svg file, or the .qrc file that identifies it?