Ok, thanks for the reply. It pointed me in the correct direction and after many failures I finally figured it out.
I guess you only learn when you need to dig deep.
The only thing I had to do was install the correct version of openSSL. Since it is my first time I had no idea what the letter actually meant, I picked the first build, which was version g, I had to install version n.
For all future wanderers, the only thing you need to do to make the client work is one of the two options:
Just copy ssleay32.dll and libeay32.dll to working directory OR
Install the latest version and set PATH to the folder where the two dlls are located.
After that you can use QWebSocket without even knowing SSL exists. Just call:
Understand the licensing constraints of using a static build of Qt and be ready to abide by them
Install an up to date version of OpenSSL (the system version is just too old)
Download Qt's source
Read documentation about static building
Pass the -openssl-linked as parameter to configure
Pass -sql-mysql as parameter to configure
Pass the -I and -L parameters as needed in order for Qt to find the MariaDB and OpenSSL libraries.
Call make -jX where X is the number of cores of your machine multiplied by 2 plus 1.
Go grab <insert favorite beverage> and look at your processors heating up
Call make install
Can I force QT libraries to somehow use openssl shipped along with my application?
May I ask why you want to do that?
OpenSSL is a security library. Old versions can contain known, exploitable security holes, so it sounds like a good idea to use the latest version whenever it's available. This way, when the end user upgrades OpenSSL on their system, your Qt application will automatically pick up the new OpenSSL.
@Chris-Kawa Sometimes you forget to update deploy dlls, in that case runtime vs compiletime versions in "about window" would be helpful.
Even if you use auto windeployqt command, you'll still need to copy other dlls (OpenSSL, etc) by hand, there you'll forget.
I am not involved in the encoding part. I did not write one single code for encoding. I get 3rd party XML files and i just want to decode them. To be very clear on this: I can't change the encoding, it is not my software, i do not develop it and i never had. I just got the source code for the de and encrypt part, so i may be able to import the XML files. I never wrote a single line VB code in my life. To be honest, i don't believe security is the issue, the developer just don't want anyone to be able to open it. That may not be an excuse for bad code but so far, i can't change it, i'm just happy now to be able to decode.
i still think there is simpler explanation for your issue.
The linker can't even find the lib file specified.
Are you really sure that the libs are in "C:\source\icu2\lib"? And not in a release/debug subfolder, etc.?
@SGaist thanks for reply) I understand that I need that for deployment on device but I am building just qt not an app. So i thought it might be unnecessary for building Qt itself. Cause when i am downloading qt for Ios i don't need to have that account. But i need it to build qt that's strange for me. I have ready code to port to ios so openssl is needed
Yes, indeed I can show website over https with WebEngine, even though it still show those warning messages. As documented here, Web Kit will be deprecated in Qt version 5.5+, so I'll switch to use WebEngine then.
For those who feel annoyed with the warning messages, you could suppress them by calling following method in your main()
A list of vulnerabilities can be found here . From the list i can take that it's one MITM exploit and everything else just DOS. Also google just warns us about a possible problem, it doesn't remove nor unpublish the app. Afaik heartbleed occurs from OpenSSL version 1.0.1 to 1.0.1f until it's fix in version 1.0.1g. So version 1.0.0e shouldn't have a problem with heartbleed. Although i would like to update somehow anyway...