[Interest] Qt6 - Fails to compile when openssl-linked enabled
Nuno Santos
nuno.santos at imaginando.pt
Mon Jan 9 17:15:55 CET 2023
Marten,
Thiago,
I was able to successfully configure for openssl-linked. Below is the configure line:
C:\Qt\6.4.1\src\build>..\configure.bat -prefix C:\Qt\6.4.1\msvc2019_static -static -debug-and-release -nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake minimal-static-tests -openssl-linked -- -DOPENSSL_ROOT_DIR="C:\Qt-Utils\openssl" -DOPENSSL_USE_STATIC_LIBS=TRUE
The trick was to create a separeted dir called openssl with the folders include and lib inside. Before I was just pointing to a folder that had all the vcpkg libs compiled.
Thanks for your help.
Regards,
Nuno
> On 9 Jan 2023, at 11:25, Mårten Nordheim <marten.nordheim at qt.io> wrote:
>
> As Thiago mentioned, dynamically linking OpenSSL tends to be easier.
> From what I can tell, the vcpkg directory should work with the FindOpenssl.cmake module.
> You also may have trouble if you are mixing dynamically- and statically linked libraries!
> Since they are likely linking the VC runtime in the same manner, they _cannot_ be mixed.
> And, if I remember correctly, the default ‘static’ triplets in vcpkg all link the runtime statically.
> Which means Qt and all other dependencies must also be built this way (-static-runtime for Qt).
> You can also define your own triplet with dynamic lining of the VC runtime, but I’m not familiar with the process.
> Mårten
> From: Nuno Santos <nuno.santos at imaginando.pt>
> Sent: fredag 6. januar 2023 19:04
> To: Mårten Nordheim <marten.nordheim at qt.io>
> Cc: Qt Interest <interest at qt-project.org>; Macieira, Thiago <thiago.macieira at intel.com>
> Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled
> Marten,
> I’m now trying to do the same in Windows but having problems.
> I’m using vcpkg to build openssl and the only different in the configure line is the path to the installed vcpkgs
> ..\configure.bat -prefix C:\Qt\6.4.1\msvc2019_static -static -debug-and-release -nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake minimal-static-tests -openssl-linked -qtnamespace com_imaginando_qt_6_4_1 -- -DOPENSSL_ROOT_DIR="C:\vcpkg\installed\x64-windows-static\" -DOPENSSL_USE_STATIC_LIBS=TRUE
> Inside C:\vcpkg\installed\x64-windows-static\include there is the openssl folder
>
>
> And inside the C:\vcpkg\installed\x64-windows-static\lib there is:
>
>
> libcrypto.lib
> libeay32.lib
> libssl.lib
> However, the result is:
> CMake Error at qtbase/cmake/QtBuildInformation.cmake:490 (message):
> Feature "openssl": Forcing to "ON" breaks its condition: QT_FEATURE_openssl_runtime OR QT_FEATURE_openssl_linked Condition values dump: QT_FEATURE_openssl_runtime = "OFF"
> QT_FEATURE_openssl_linked = "OFF"Call Stack (most recent call first):
> qtbase/cmake/QtFeature.cmake:281 (qt_configure_add_report_error)
> qtbase/cmake/QtFeature.cmake:403 (qt_feature_check_and_save_internal_value)
> qtbase/cmake/QtFeature.cmake:155 (qt_evaluate_feature)
> qtbase/cmake/QtFeature.cmake:349 (qt_evaluate_config_expression)
> qtbase/cmake/QtFeature.cmake:606 (qt_evaluate_feature)
> qtbase/cmake/QtFeature.cmake:575 (qt_feature_module_end)
> qtbase/src/CMakeLists.txt:9 (qt_feature_evaluate_features)
> Trying to build without this, worked perfectly.
> What am I missing here?
> Thanks!
> Nuno
>
>
> On 8 Dec 2022, at 15:04, Nuno Santos <nuno.santos at imaginando.pt> wrote:
>
> Marten,
>
> I’ve noticed the nuance yesterday and tried but there was an error but I didn’t read the output correctly. I had a typo in a second define, OPENSSL_USE_STATIC_LIBS, which needed to be set to true. The following configure line worked:
>
> ./configure -prefix /Users/nsantos/Qt/6.4.1/macos_static -static -debug-and-release -nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake minimal-static-tests -openssl-linked -- -DOPENSSL_ROOT_DIR="/Users/nsantos/Qt-Utils/openssl" -DOPENSSL_USE_STATIC_LIBS=TRUE
>
> Thiago, using openssl linked on Mac was a decision I have made a many years ago and I can’t remember the reason. Maybe it is not a good decision anymore. I know Apple has its SecureTransport framework. I might need to evaluate it again.
>
> Thanks!
>
> Regards,
>
> Nuno
>
>
> On 8 Dec 2022, at 08:49, Mårten Nordheim <marten.nordheim at qt.io> wrote:
>
> The parameters to cmake (-D*) must be passed after a separating double dash (--).
> So, this:
> -openssl-linked -DOPENSSL_ROOT_DIR="…"
> Should be like:
> -openssl-linked -- -DOPENSSL_ROOT_DIR="…"
> Mårten
> From: Nuno Santos <nuno.santos at imaginando.pt>
> Sent: onsdag 7. desember 2022 17:40
> To: Mårten Nordheim <marten.nordheim at qt.io>
> Cc: Qt Interest <interest at qt-project.org>
> Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled
> Marten,
> Tried again without success. Maybe it's the directory layout. I don’t know I’m in the dark since the the CMakeOutput.log and CMakeError.log do not even mention ssl anywhere. Below is the new configure call:
> ./configure -prefix /Users/nsantos/Qt/6.4.2/macos -static -debug-and-release -nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake minimal-static-tests -openssl-linked -DOPENSSL_ROOT_DIR="/Users/nsantos/Qt-Utils/openssl" -DOPENSSL_USE_STATIC_LIBS
> Where:
> > find /Users/nsantos/Qt-Utils/openssl
>
>
> gives:
> /Users/nsantos/Qt-Utils/openssl
> /Users/nsantos/Qt-Utils/openssl/include
> /Users/nsantos/Qt-Utils/openssl/include/crypto
> /Users/nsantos/Qt-Utils/openssl/include/crypto/md32_common.h
> …
> /Users/nsantos/Qt-Utils/openssl/lib
> /Users/nsantos/Qt-Utils/openssl/lib/libcrypto.a
> /Users/nsantos/Qt-Utils/openssl/lib/libssl.a
> Where can I find more information?
> Thank you!
> Best regards,
> Nuno
>
>
> On 7 Dec 2022, at 13:50, Mårten Nordheim <marten.nordheim at qt.io> wrote:
> Ah, I don’t think OPENSSL_LIBS is in use anymore!
> I think it was still left printed at the end of configure, I’m not sure the change removing it was merged into 6.4.
> Please use the FindOpenSSL cmake find-module variables: https://cmake.org/cmake/help/latest/module/FindOpenSSL.html
> In your case, passing -DOPENSSL_ROOT_DIR="/Users/nsantos/Qt-Utils/openssl"
> at the end of your configure line, something like this:
> ./configure -prefix …. -openssl-linked -- -DOPENSSL_ROOT_DIR="…"
> Mårten
> From: Nuno Santos <nuno.santos at imaginando.pt>
> Sent: onsdag 7. desember 2022 14:01
> To: Mårten Nordheim <marten.nordheim at qt.io>
> Cc: Qt Interest <interest at qt-project.org>
> Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled
> Marten,
> Thank you for your reply.
> Yes the patch required? My configure line was:
> ./configure -prefix /Users/nsantos/Qt/6.4.2/macos -static -debug-and-release -nomake examples -nomake tests -nomake benchmarks -nomake manual-tests -nomake minimal-static-tests -openssl-linked -I/Users/nsantos/Qt-Utils/openssl/include OPENSSL_LIBS="/Users/nsantos/Qt-Utils/openssl/lib/libssl.a /Users/nsantos/Qt-Utils/openssl/lib/libcrypto.a”
> Best,
> Nuno
>
>
>
> On 7 Dec 2022, at 11:59, Mårten Nordheim <marten.nordheim at qt.io> wrote:
> [Reply is inline]
>
>
>
> -----Original Message-----
> From: Nuno Santos <nuno.santos at imaginando.pt>
> Sent: onsdag 7. desember 2022 11:50
> To: Mårten Nordheim <marten.nordheim at qt.io>
> Cc: Qt Interest <interest at qt-project.org>
> Subject: Re: [Interest] Qt6 - Fails to compile when openssl-linked enabled
>
> Marten,
>
> Thanks for your reply.
>
> I’m on branch 6.4.2 and before any configure I always call:
>
> git submodule foreach --recursive "git clean -dfx" && git clean -dfx
>
> Should I try with another branch?
>
> No, it shouldn't be needed. I just configured 6.4 branch locally and it
> works fine. With only
> https://codereview.qt-project.org/c/qt/qtbase/+/446542
> as the extra patch.
> I think this might indicate that the openssl compile test fails, which
> could disable the feature. But just to make sure; do you call configure
> like `../qt5/configure ... -openssl-linked` ?
>
>
>
>
> Regards,
>
> Nuno
>
>
>
> On 7 Dec 2022, at 09:45, Mårten Nordheim <marten.nordheim at qt.io>
> wrote:
>
>
>
> Hey,
>
> If this is a clean build I need to know which branch you are building.
> If not then you could try deleting CMakeCache.txt and reconfiguring,
> there were some changes around configuration of openssl recently
> which may be conflicting with values in the cache.
>
> Mårten
>
>
>
> -----Original Message-----
> From: Interest <interest-bounces at qt-project.org> On Behalf Of Nuno
> Santos
> Sent: onsdag 7. desember 2022 10:28
> To: Qt Interest <interest at qt-project.org>
> Subject: [Interest] Qt6 - Fails to compile when openssl-linked enabled
>
> Hi,
>
> I’m trying to compile Qt 6 with openssl-linked but I’m having this error and
> I’m not being able to interpret it.
>
> What is failing? Can you please help me here?
>
> Thanks in advance!
>
> Regards,
>
> Nuno
>
>
> Configuring submodule 'qtbase'
> CMake Error at qtbase/cmake/QtBuildInformation.cmake:490 (message):
> Feature "openssl": Forcing to "ON" breaks its condition:
>
> QT_FEATURE_openssl_runtime OR QT_FEATURE_openssl_linked
>
> Condition values dump:
>
> QT_FEATURE_openssl_runtime = "OFF"
> QT_FEATURE_openssl_linked = "OFF"
>
> Call Stack (most recent call first):
> qtbase/cmake/QtFeature.cmake:281 (qt_configure_add_report_error)
> qtbase/cmake/QtFeature.cmake:403
> (qt_feature_check_and_save_internal_value)
> qtbase/cmake/QtFeature.cmake:155 (qt_evaluate_feature)
> qtbase/cmake/QtFeature.cmake:349 (qt_evaluate_config_expression)
> qtbase/cmake/QtFeature.cmake:606 (qt_evaluate_feature)
> qtbase/cmake/QtFeature.cmake:575 (qt_feature_module_end)
> qtbase/src/CMakeLists.txt:9 (qt_feature_evaluate_features)
>
>
> -- Could NOT find md4c (missing: md4c_DIR)
> -- Could NOT find md4c (missing: md4c_DIR)
> CMake Error at qtbase/cmake/QtTargetHelpers.cmake:832 (message):
> WrapOpenSSLHeaders::WrapOpenSSLHeaders is not a valid target.
> Call Stack (most recent call first):
> qtbase/src/plugins/tls/openssl/CMakeLists.txt:54
> (qt_internal_add_target_include_dirs)
>
>
> -- Configuring incomplete, errors occurred!
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
More information about the Interest
mailing list