ldd показывает много (65) зависимостей даже в статически-собранном Qt-приложении
Я сконфигурировал и собрал Qt 5.15 статически
mkdir ~/data
cd ~/data
wget https://download.qt.io/archive/qt/5.15/5.15.5/single/qt-everywhere-opensource-src-5.15.5.tar.xz
tar -xf qt-everywhere-opensource-src-5.15.5.tar.xz -C qt-5.15-v1
cd qt-5.15-v1/qt-everywhere-src-5.15.5/
./configure -static -prefix /opt/qt-5.15-v1-static -confirm-license -opensource -nomake examples -nomake tests -nomake tools -skip qtwebengine
Вот результат команды configure https://pastebin.com/7EeqfH0N
Установил Qt, успешно в каталог /opt/qt-5.15-v1-static
make
sudo make install
Потом собрал Hello-world проект без QML с одним MainWindow. Вот его файл проекта:
QT += core gui widgets
CONFIG += c++11
SOURCES += main.cpp mainwindow.cpp
HEADERS += mainwindow.h
cd ~/data/tinytest/
export PATH=/opt/qt-5.15-v1-static/bin:$PATH
qmake tinytest.pro -config release
make
Вот полный вывод сборки: https://pastebin.com/rxvqu7Uj
Замечание: почему-то в строке линковки НЕТ опции -static, хотя в configure она передавалась
После сборки бинарник содержит очень много зависимостей:
user@host:~/data/tinytest$ ldd tinytest
linux-vdso.so.1 (0x00007ffc715dd000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f21798e7000)
libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f21796e2000)
libxcb-image.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f21794dd000)
libxcb-shm.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007f21792da000)
libxcb-keysyms.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-keysyms.so.1 (0x00007f21790d7000)
libxcb-randr.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-randr.so.0 (0x00007f2178ec7000)
libxcb-render-util.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f2178cc3000)
libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f2178ab6000)
libxcb-shape.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-shape.so.0 (0x00007f21788b2000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f21786ab000)
libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f21784a3000)
libxcb-xinerama.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xinerama.so.0 (0x00007f21782a0000)
libxcb-xkb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-xkb.so.1 (0x00007f2178084000)
libxcb-xinput.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xinput.so.0 (0x000
... 69 библиотек
Вот полный вывод https://pastebin.com/iMPJZkFk
Я использовал официальное руководство https://doc.qt.io/qt-5/linux-deployment.html
Я знаю что эти 4 библиотеки нельзя собрать статически: linux-vdso.so
libc.so
libpthread.so
ld-linux-x86-64.so
Вопрос: почему остальные 65, почему не собрались? Не могу найти упоминания об этом ни в одном руководстве/мануале/статье