Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Difficulty with static builds
QtWS25 Last Chance

Difficulty with static builds

Scheduled Pinned Locked Moved Solved Installation and Deployment
4 Posts 2 Posters 2.2k 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.
  • T Offline
    T Offline
    tejohnso1
    wrote on last edited by
    #1

    Re: [Build QT static libraries](with LinuxFB and minimum dependencies.)

    After finding many different suggestions for a static ./configure parameter list and creating a -static build, I've found that the linker complains about dozens of missing libraries.

    I used

    ./configure -static -prefix /home/user/qt-build/ -confirm-license -opensource -dbus-linked -openssl-linked -system-sqlite -nomake examples -no-rpath -nomake tests -skip qtwebengine -skip webengine -skip wayland
    
    

    After make && make install I change to my program's directory and

    PATH=/home/user/qt-build/bin:$PATH qmake
    make
    

    This results in a bunch of ld errors:

    /usr/bin/ld: cannot find -lxcb-glx
    /usr/bin/ld: cannot find -lXi
    /usr/bin/ld: cannot find -lSM
    /usr/bin/ld: cannot find -lICE
    /usr/bin/ld: cannot find -lXrender
    /usr/bin/ld: cannot find -lxcb-xkb
    /usr/bin/ld: cannot find -lxcb-render-util
    /usr/bin/ld: cannot find -lxcb-render
    /usr/bin/ld: cannot find -lxcb-sync
    /usr/bin/ld: cannot find -lxcb-xfixes
    /usr/bin/ld: cannot find -lxcb-xinerama
    /usr/bin/ld: cannot find -lxcb-randr
    /usr/bin/ld: cannot find -lxcb-image
    /usr/bin/ld: cannot find -lxcb-shm
    /usr/bin/ld: cannot find -lxcb-keysyms
    /usr/bin/ld: cannot find -lxcb-icccm
    /usr/bin/ld: cannot find -lxcb-shape
    /usr/bin/ld: cannot find -lxkbcommon-x11
    /usr/bin/ld: cannot find -ljpeg
    /usr/bin/ld: cannot find -lmng
    /usr/bin/ld: cannot find -ltiff
    /usr/bin/ld: cannot find -lwebp
    /usr/bin/ld: cannot find -lwebpdemux
    /usr/bin/ld: cannot find -lgbm
    /usr/bin/ld: cannot find -ldrm
    /usr/bin/ld: cannot find -ldbus-1
    /usr/bin/ld: cannot find -lfontconfig
    /usr/bin/ld: cannot find -lfreetype
    /usr/bin/ld: cannot find -lXext
    /usr/bin/ld: cannot find -lmtdev
    /usr/bin/ld: cannot find -linput
    /usr/bin/ld: cannot find -lxkbcommon
    /usr/bin/ld: cannot find -ludev
    /usr/bin/ld: cannot find -lX11-xcb
    /usr/bin/ld: cannot find -lX11
    /usr/bin/ld: cannot find -lxcb
    /usr/bin/ld: cannot find -lts
    /usr/bin/ld: cannot find -lEGL
    /usr/bin/ld: cannot find -lpng16
    /usr/bin/ld: cannot find -lharfbuzz
    /usr/bin/ld: cannot find -licui18n
    /usr/bin/ld: cannot find -licuuc
    /usr/bin/ld: cannot find -licudata
    /usr/bin/ld: cannot find -lpcre2-16
    /usr/bin/ld: cannot find -ldouble-conversion
    
    

    Previous response to this issue mentioned a "full" static build requiring a Qt build that includes its dependencies as static libraries, but I don't see any indication of how to configure that. I'm also wondering how this partial static build should be used. Is there some reason -static should configure a partial static build rather than a full static build?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      It means that you are missing the corresponding dev-packages from your distribution.

      If you want a full 100% static build, you also have to get all dependencies statically.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • T Offline
        T Offline
        tejohnso1
        wrote on last edited by
        #3

        Is there a list of packages that are required for the various distributions?
        Is it really unusual to create 100% static builds? It seems like a poorly documented use case so perhaps it's just not common. But it also seems like it would be the most reliable and simplest for the end user so I didn't expect it to be rare or unusual.

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #4

          https://wiki.qt.io/Building_Qt_5_from_Git

          Yes it is for several reasons:

          • Each update of any of your dependency means that you have to rebuild everything that depends on it and do a new release of your application. Think security related bug fixes. This means that you have to trac every dependency for bug fixes and security fixes. Linking dynamically you can rely on the distribution your application users run to stay updated.
          • Licensing issues, LGPL for example states that you have to provide the means for your application users to replace the LGPL libraries you link to with whatever versions of that library they want. And that example is only for LGPL, you might be using libraries with other license that have other restrictions.
          • The application is way bigger and longer to load.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          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