Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Correct way to use static openssl with self-builded Qt on Ubuntu

Correct way to use static openssl with self-builded Qt on Ubuntu

Scheduled Pinned Locked Moved Solved General and Desktop
2 Posts 1 Posters 779 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Offline
    L Offline
    ludek.vodicka
    wrote on last edited by ludek.vodicka
    #1

    Hi,

    I'm not able to configure Qt to use OPENSSL compiled via vcpkg as a static library.

    export OPENSSL_LIBS="$OPENSSL_PATH/lib_release/libcrypto.a $OPENSSL_PATH/lib_release/libssl.a -L$OPENSSL_PATH/lib_release -ldl -lpthread"
    export OPENSSL_PREFIX=$OPENSSL_PATH
    export OPENSSL_INCDIR=$OPENSSL_PATH/include 
    export OPENSSL_LIBDIR=$OPENSSL_PATH/lib_release
    
    ./configure -openssl-linked ...
    

    But result libQt5Network.so has a dynamic reference to /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1

        linux-vdso.so.1 (0x00007ffe2ef31000)
        libQt5Core.so.5 => /root/dev/SharedLibraries/qt/lib/libQt5Core.so.5 (0x00007f3b06ec1000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3b06ca2000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f3b06a85000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3b06881000)
        libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007f3b065f4000)
        libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 (0x00007f3b06129000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3b05da0000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3b059af000)
        libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f3b05698000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3b052fa000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3b050e2000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f3b07afb000)
        libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f3b04e70000)
    

    I tried several configuration switches and methods on ./configure but still with the same result.

    This is my complete configure script:

    /root/dev/ExternalLibraries/librariesLinux/qt-everywhere-src-5.15.1/qtbase/configure -v -prefix /root/dev/ExternalLibraries/../SharedLibraries/qt -dbus -xcb-xlib -bundled-xcb-xinput -skip qt3d -skip activeqt -skip qtandroidextras -skip qtconnectivity -skip datavis3d -skip declarative -skip qtdoc -skip gamepad -skip qtgraphicaleffects -skip qtcharts -skip qtlocation -skip qtlottie -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquick3d -skip qtquickcontrols -skip qtquickcontrols2 -skip qtquicktimeline -skip qtremoteobjects -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtvirtualkeyboard -skip qtwayland -skip qtwebengine -skip qtwebglplugin -skip qtwebchannel -skip qtwebsockets -skip qtwebview -skip qtxmlpatterns -no-opengl -no-openvg -nomake examples -nomake tests -confirm-license -opensource -D JAVASCRIPTCORE_JIT=NO -D ENABLE_JIT=0 -openssl-linked -skip qtscript

    Thanks for any help

    1 Reply Last reply
    0
    • L Offline
      L Offline
      ludek.vodicka
      wrote on last edited by
      #2

      I just found a reason. It's necessary to swap the order of libssl and libcrypto. This caused undefined references errors. But I'm not sure why ./configure doesn't report that.

      This is incorrect test:

      g++ -Wl,-O1 -o openssl main.o ~/dev/SharedLibraries/openssl/lib_release/libcrypto.a ~/dev/SharedLibraries/openssl/lib_release/libssl.a -ldl -lpthread

      This is a correct test

      g++ -Wl,-O1 -o openssl main.o ~/dev/SharedLibraries/openssl/lib_release/libssl.a ~/dev/SharedLibraries/openssl/lib_release/libcrypto.a -ldl -lpthread

      After this change, config.qtbase_network.libraries.openssl test is correclty passed:

      test config.qtbase_network.libraries.openssl succeeded

      OpenSSL seems to be configured correctly (but it was reported correct also before this change)

      Qt Network:
        getifaddrs() ........................... yes
        IPv6 ifname ............................ yes
        libproxy ............................... no
        Linux AF_NETLINK ....................... yes
        OpenSSL ................................ yes
          Qt directly linked to OpenSSL ........ yes
        OpenSSL 1.1 ............................ yes
        DTLS ................................... yes
        OCSP-stapling .......................... yes
        SCTP ................................... no
        Use system proxies ..................... yes
        GSSAPI ................................. no
      
      1 Reply Last reply
      1

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt Extensions
      • Unsolved