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. Strange behaviour of a program built with a static Qt
Forum Updated to NodeBB v4.3 + New Features

Strange behaviour of a program built with a static Qt

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
static buildubuntu 15.10
4 Posts 2 Posters 1.8k Views 1 Watching
  • 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.
  • M Offline
    M Offline
    mchome
    wrote on last edited by
    #1

    Dear all,
    I’ve made a program, whose name is "PlotXY", that I compiled successfully for Win and Mac.
    The windows version is built using a static build of Qt.

    Even though I’m not an Ubuntu user, I want to make an Ubuntu version as well, using static Qt link.
    I created two virtual box virtual machines, one (“UbuntuQt”) in which I installed Qt, the other (“Vanilla”) without it for testing purposes.
    In "UbuntuQt" I created a static Qt using the following commands:
    ./configure -qt-xcb -static -prefix /home/massimo/QtStatic
    make
    make install

    Once PlotXY is compiled with static Qt and run directly double-clicking on its icon from inside "UbuntuQt" it loads and shows correctly.
    However, if I run the same program from inside "Vanilla", the result is very surprising: the main window appears, but without any text in it. I mean: all the labels' text and all the text on the buttons has disappeared.
    Except for this, the window is ok: its layout, its graphical elements.
    One of the main window buttons is an "Open..." button. It causes execution of a QFileDialog object. Even in this dialog no text is shown: no file names, no folder names.
    Naturally, when running the (statically built) PlotXY executable from "UbuntuQt", also the FileDialog window is correct, and contains all its text.

    Can someone explain this?
    Any idea on how to solve this problem?

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

      Hi and welcome to devnet,

      Did you check your application dependencies running ldd ?

      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
      • M Offline
        M Offline
        mchome
        wrote on last edited by
        #3

        Ah, it was my mistake.

        The dynamically linked version of the program has a size of 885k bytes and ldd gives a lot of dependencies.

        The statically linked version has a size of 23.8 MB and I expected to have no dependencies.
        But if I ldd it I get as follows:
        linux-gate.so.1 => (0xb7762000)
        libX11-xcb.so.1 => /usr/lib/i386-linux-gnu/libX11-xcb.so.1 (0xb7745000)
        libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb7720000)
        libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb75d4000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb75cf000)
        librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb75c6000)
        libGL.so.1 => /usr/lib/i386-linux-gnu/mesa/libGL.so.1 (0xb751c000)
        libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb74ff000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7387000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb733a000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb731c000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7161000)
        /lib/ld-linux.so.2 (0x800c6000)
        libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb715d000)
        libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb7155000)
        libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb712c000)
        libglapi.so.0 => /usr/lib/i386-linux-gnu/libglapi.so.0 (0xb7111000)
        libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb70fc000)
        libXdamage.so.1 => /usr/lib/i386-linux-gnu/libXdamage.so.1 (0xb70f8000)
        libXfixes.so.3 => /usr/lib/i386-linux-gnu/libXfixes.so.3 (0xb70f0000)
        libxcb-glx.so.0 => /usr/lib/i386-linux-gnu/libxcb-glx.so.0 (0xb70d5000)
        libxcb-dri2.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri2.so.0 (0xb70cf000)
        libxcb-dri3.so.0 => /usr/lib/i386-linux-gnu/libxcb-dri3.so.0 (0xb70cb000)
        libxcb-present.so.0 => /usr/lib/i386-linux-gnu/libxcb-present.so.0 (0xb70c7000)
        libxcb-sync.so.1 => /usr/lib/i386-linux-gnu/libxcb-sync.so.1 (0xb70be000)
        libxshmfence.so.1 => /usr/lib/i386-linux-gnu/libxshmfence.so.1 (0xb70bb000)
        libXxf86vm.so.1 => /usr/lib/i386-linux-gnu/libXxf86vm.so.1 (0xb70b4000)
        libdrm.so.2 => /usr/lib/i386-linux-gnu/libdrm.so.2 (0xb70a4000)

        Why so many dependencies? Maibe I created a faulty static Qt?

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

          Having a static Qt doesn't mean that all dependencies are gone. Qt might be static but unless you also link to the static version of all its dependencies, what you have is normal: OpenGL and the xcb plugin deps.

          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

          • Login

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