Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Qt

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 183, средняя оценка - 4.78
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
#1

GNU/Linux Qt5.* - Линкуем статически - C++ Qt

23.01.2014, 19:10. Просмотров 31004. Ответов 59
Метки нет (Все метки)

В связи с отсутствием в данной теме мануала по статической линковке приложений Qt, решил исправить данный недостаток
Оговорюсь сразу: приветствуется беспощадная критика, особенно, что касается скриптов)
Итак:
1) Как обычно, нужно пересобрать фреймвор статически. Для этого скачиваем архив с исходными текстами отсюда: http://qt-project.org/downloads
На данный момент имя тар-бола - qt-everywhere-opensource-src-5.2.0.tar.gz

2) Переходим в каталог с тар-болом. Разархивируем и распаковываем. Потом нужно сконфигурировать, собрать и установить тонну исходников. Делаем это так ( за дополнительными параметрами, если нужно, обращайтесь ./configure --help):
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tar -xzvf qt-everywhere-opensource-src-5.2.0.tar.gz && cd qt-everywhere-opensource-src-5.2.0 \
&& sudo mkdir -p /usr/lib/Qt5_static && ./configure -platform linux-g++ \
-release \
-static \
-fontconfig \
-opensource \
-confirm-license \
-nomake examples \
-c++11 \
-nomake tests \
-qt-zlib \
-qt-libpng \
-qt-libjpeg \
-prefix /usr/local/Qt5_static \
&& make -j3 && make install
Код
Объяснение опций:
-platform linux-g++ \ # Ваша платформа и компилятор
-release \ # Собираем для релиза
-static \ # Собственно, наша цель собрать статически
-fontconfig \ # Поддержка собственного fontconfig
-opensource \ # СПО версия
-confirm-license \ # Сразу согласиться с лицензией
-nomake examples \ # Не собирать учебные примеры
-c++11 \ # Поддержка последнего стандарта
-nomake tests \ # Не проводить тесты
-qt-zlib \ # Внедрение собственной библиотеки <libname>
-qt-libpng \ # ...
-qt-libjpeg \ # ...
-prefix /usr/local/Qt5_static \ # Относительно этого пути будет производиться установка (можете свой указать)
make -j3 # количество ядер процессора +1
3) Так, теперь у нас есть все необходимые инструменты (почти )
Заходим в QtCreator, Tools > Options > Build & Run > Qt Versions
Добавляем путь к новому qmake ( в нашем случае /usr/local/Qt5_static/bin/qmake ).
Затем идем на вкладку Kits и добавляем новый набор инструментов, только укзываем ему qmake, только что добавленный на предыдущем шаге. Озаглавим этот набор Qt5_staticKit, например. Нажимаем Ok.
4) Ctrl+5, выбираем вверху проект, который мы хотим собрать статически, и щелкаем по новому Kit'y Qt5_staticKit. Выбираем Release конфигурацию. Тааак, здесь пока все.
5) Перелазим в .pro file. Добавляем туда
Код
QMAKE_LFLAGS += -s # Убрать все таблицы символов из результирующего бинарника ( man gcc )
# 3-rd party библиотеки, (boost, gmp, ... ) если есть статический вариант добавляем так:
LIBS += -Wl, -Bstatic, -lboost_regex, -lgmp, -lgmpxx, -Bdynamic
Теперь все Qt и 3-rd party библиотеки сидят в бинарнике, НО дело еще не закончено.
Если посмотреть на вывод ldd, то можно увидеть, что приложение зависит еще от целой кучи не Qt-ных библиотек. Они могут быть бинарно-несовместимыми со своими предыдущими версиями (особенно, если написаны на С++) даже если они имеются на чужом компьютере.
Например:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
ldd traditional
        linux-vdso.so.1 (0x00007fffd05fe000)
        libgobject-2.0.so.0 => lib/libgobject-2.0.so.0 (0x00007fe1a298a000)
        libX11-xcb.so.1 => lib/libX11-xcb.so.1 (0x00007fe1a2788000)
        libXi.so.6 => lib/libXi.so.6 (0x00007fe1a2578000)
        libxcb-render-util.so.0 => lib/libxcb-render-util.so.0 (0x00007fe1a2375000)
        libSM.so.6 => lib/libSM.so.6 (0x00007fe1a216d000)
        libICE.so.6 => lib/libICE.so.6 (0x00007fe1a1f51000)
        libxcb-glx.so.0 => lib/libxcb-glx.so.0 (0x00007fe1a1d39000)
        libxcb-render.so.0 => lib/libxcb-render.so.0 (0x00007fe1a1b2f000)
        libxcb-keysyms.so.1 => lib/libxcb-keysyms.so.1 (0x00007fe1a192d000)
        libdbus-1.so.3 => lib/libdbus-1.so.3 (0x00007fe1a16e5000)
        libxcb.so.1 => lib/libxcb.so.1 (0x00007fe1a14c5000)
        libxcb-image.so.0 => lib/libxcb-image.so.0 (0x00007fe1a12c1000)
        libxcb-icccm.so.4 => lib/libxcb-icccm.so.4 (0x00007fe1a10bd000)
        libxcb-sync.so.1 => lib/libxcb-sync.so.1 (0x00007fe1a0eb7000)
        libxcb-xfixes.so.0 => lib/libxcb-xfixes.so.0 (0x00007fe1a0cb0000)
        libxcb-shm.so.0 => lib/libxcb-shm.so.0 (0x00007fe1a0aad000)
        libxcb-randr.so.0 => lib/libxcb-randr.so.0 (0x00007fe1a089f000)
        libxcb-shape.so.0 => lib/libxcb-shape.so.0 (0x00007fe1a069b000)
        libxcb-xkb.so.1 => lib/libxcb-xkb.so.1 (0x00007fe1a0480000)
        libxkbcommon.so.0 => lib/libxkbcommon.so.0 (0x00007fe1a0220000)
        libfontconfig.so.1 => lib/libfontconfig.so.1 (0x00007fe19ffe4000)
        libfreetype.so.6 => lib/libfreetype.so.6 (0x00007fe19fd3f000)
        libXrender.so.1 => lib/libXrender.so.1 (0x00007fe19fb35000)
        libXext.so.6 => lib/libXext.so.6 (0x00007fe19f923000)
        libX11.so.6 => lib/libX11.so.6 (0x00007fe19f5e8000)
        libudev.so.1 => lib/libudev.so.1 (0x00007fe19f3d6000)
        libicui18n.so.52 => lib/libicui18n.so.52 (0x00007fe19efce000)
        libicuuc.so.52 => lib/libicuuc.so.52 (0x00007fe19ec55000)
        libpcre16.so.0 => lib/libpcre16.so.0 (0x00007fe19e9f6000)
        libdl.so.2 => lib/libdl.so.2 (0x00007fe19e7f2000)
        libgthread-2.0.so.0 => lib/libgthread-2.0.so.0 (0x00007fe19e5f0000)
        libglib-2.0.so.0 => lib/libglib-2.0.so.0 (0x00007fe19e2f0000)
        librt.so.1 => lib/librt.so.1 (0x00007fe19e0e8000)
        libGL.so.1 => lib/libGL.so.1 (0x00007fe19ddb5000)
        libpthread.so.0 => lib/libpthread.so.0 (0x00007fe19db98000)
        libstdc++.so.6 => lib/libstdc++.so.6 (0x00007fe19d894000)
        libm.so.6 => lib/libm.so.6 (0x00007fe19d591000)
        libgcc_s.so.1 => lib/libgcc_s.so.1 (0x00007fe19d37b000)
        libc.so.6 => lib/libc.so.6 (0x00007fe19cfd1000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fe1a2bdb000)
        libpcre.so.1 => lib/libpcre.so.1 (0x00007fe19cd6a000)
        libffi.so.6 => lib/libffi.so.6 (0x00007fe19cb62000)
        libuuid.so.1 => lib/libuuid.so.1 (0x00007fe19c95d000)
        libXau.so.6 => lib/libXau.so.6 (0x00007fe19c759000)
        libXdmcp.so.6 => lib/libXdmcp.so.6 (0x00007fe19c553000)
        libxcb-util.so.1 => lib/libxcb-util.so.1 (0x00007fe19c34e000)
        libexpat.so.1 => lib/libexpat.so.1 (0x00007fe19c124000)
        libz.so.1 => lib/libz.so.1 (0x00007fe19bf0e000)
        libbz2.so.1.0 => lib/libbz2.so.1.0 (0x00007fe19bcfe000)
        libpng16.so.16 => lib/libpng16.so.16 (0x00007fe19bac9000)
        libicudata.so.52 => lib/libicudata.so.52 (0x00007fe19a25e000)
        libnvidia-tls.so.331.38 => lib/libnvidia-tls.so.331.38 (0x00007fe19a05b000)
        libnvidia-glcore.so.331.38 => lib/libnvidia-glcore.so.331.38 (0x00007fe19784d000)

Пересобирать каждую из них, в случае, когда нет статической, довольно проблематично и долго и не всегда возможно ( кто хочет пусть попробует ), поэтому есть вариант поставлять их вместе со своим приложением. Большая вероятность того, что большинство этих библиотек будут на чужой машине, но выполнив еще немного действий, вы застрахуете и себя, и пользователя от лишней головной боли.
Вот что делаем:
1) Нужно скопировать симлинк, который выводит ldd, и библиотеку на которую он указывает в каталог с нашим приложением. ( в нашем случае /path/to/app/lib ). Симлинк использует динамический загрузчик при загрузке библиотеки для приложения во время выполнения, ну а библиотека, на которую он указывает это собственно данные.

Вот наваял такой скрипт (еще раз напомню, что правки и улучшения очень приветствуются c башем знаком 2 дня )

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/sh
LIB_DIR=lib/
SONAME_LIST=soname.lst
 
if [ "$#" -lt 1 ]; then
    echo "Usage: ./$(basename ${0}) < executable >"
    exit 1;
fi
 
# slc.c: На входе - вывод ldd, на выходе - имена symlink'ов, для динамич. загрузчика
cat<<'EOF' > slc.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    #include <locale.h>
    #include <string.h>
 
    #define MAX_LENGTH 256
    #define LINE_CNT 200
    int first_nonspace(const char *s) {
    for(size_t i=0; *s; ++i, ++s)
        if( !isspace(*s) )
        return i;
    return -1; // Нет значимых символов
    }
    int main() {
    setlocale(LC_ALL, "C");
    char** lines = malloc( LINE_CNT * sizeof(char*) );
    for(int i=0; i < LINE_CNT; ++i)
        lines[i] = malloc( MAX_LENGTH * sizeof(char) );
    char  line[MAX_LENGTH];
    size_t currLineNumb = 0;
 
    while( fgets(line, MAX_LENGTH, stdin) != NULL && currLineNumb < LINE_CNT) {
        int fns = first_nonspace(line);
        if(fns == -1)
        continue;
        else {
        char lib_prefix[4] = {'\0',}; // "lib" + '\0'
        strncpy(lib_prefix, line+fns, 3);
        lib_prefix[3] = '\0';
        if( !strcmp(lib_prefix, "lib")) // Если имя начинается с 'lib',
            strcpy(lines[currLineNumb++], line+fns); // сохраняем эту строчку
        }
    }
    // Выводим сохраненную строчку до первого пробела,
    // что и будет составлять наш soname.
    for(size_t i=0; i < currLineNumb; ++i)
        printf("%.*s\n", (int)(strchr(lines[i], ' ') - lines[i]), lines[i]);
    for(int i=0; i < LINE_CNT; ++i) free(lines[i]);
    free(lines);
    return 0;
    }
EOF
cc -std=c99 slc.c -o slc
mkdir -p ${LIB_DIR}
ldd $1 | ./slc > $SONAME_LIST
for name in `cat $SONAME_LIST`; do
    libname=$(readlink /usr/lib/$name)   # Получим имя библиотеки
    cp /usr/lib/${libname} -t $LIB_DIR;    # Копируем библиотеку
    cp -P /usr/lib/${name} -t $LIB_DIR;    # Копируем симлинк, нужный для ldd
done
 
# Чистимся
rm -f ${SONAME_LIST} slc{,.c}
exit 0;
Сохраняем это под именем, например, s.sh, и ложим в каталог с исполняемым файлом приложения.
Выполняем:
Bash
1
chmod +x s.sh && ./s.sh name_of_the_executable
В текущем каталоге появится каталог ./lib/ , в котором будут лежать все необходимые ссылки и библиотеки.
Последний штрих: в .pro файл нужно добавить -rpath опцию линковщику, чтобы загрузчик потом знал, что поставляемые нами вместе с приложением библиотеки лежат в папке lib/ (в данном случае):
Код
LIBS += -Wl,-rpath lib/
Теперь все это дело в .tar.gz и можете делиться с друзьями своим приложением

Как из этого сделать программный пакет, смотрите документацию к своему дистрибутиву GNU/Linux.

Ps. На MacOS процедура практически не должна отличаться, но у меня нет возможности проверить.
Pss. Если ваше приложени базируется на плагинах, то они по своей природе не могут линковаться статически..
Смотрите документацию http://qt-project.org/doc/qt-4.8/deployment-x11.html и все вытекающие перекрестные ссылки по плагинам.
___________________________________________________________________________________________________________
Вроди бы ничего не забыл...
Надеюсь, статейка кому-нибудь поможет разобраться.
Спасибо и удачи
5
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 19:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос GNU/Linux Qt5.* - Линкуем статически (C++ Qt):

Timestamp->QdateTime (Qt5+Firebird+Linux) - C++ Qt
Направьте на путь истинный. В исходниках Qt5 есть небольшой пример, sqlbrowser. И есть база FB. Всё коннектится и показывается. Но есть...

Qt5 перенос приложения из windows7 в linux (Raspbery) - Кроссплатформенная разработка
Добрый вечер! Извиняюсь, не так давно знаком с Qt и линукс, нужна помощь. Задача стоит разработать приложение для микрокомпьютера...

Как статически ликовать QT 5.3.0 - C++ Qt
Как статистически ликовать QT 5.3.0 Собирать утилиты без требований библиотек QT да видел варианты QT 4.7 и другие - но по их...

Как собирать программу статически? - C++ Qt
Как собирать программу статически? Скиньте ссылку на нормальный мануал.

qmake. Заставить GCC линковать статически - C++ Qt
Нужно слинковать библиотеку GMP статически. Такая вещь в .pro файле, естественно, предпочитает динамические либы: unix:LIBS +=...

Задать количество строк и столбцов статически. QGridLayout - C++ Qt
Здравствуйте. опять прошу, подскажите метод или алгоритм: обычно менеджер компоновки QGridLayout занимает весь родительский виджет, и...

59
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
24.01.2014, 00:51  [ТС] #16
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Пакет *-devel это заголовочные файлы
Не только. В девел пакете также лежит необходимая ТОЛЬКО для разработки статическая либа.
В пакете же libxcb.pkg.* будет libxcb.so.2.25 (например) и сслыка на нее, libxcb.so.2
0
Чистый
Автор FAQ
2706 / 1402 / 73
Регистрация: 08.09.2011
Сообщений: 3,733
Записей в блоге: 1
24.01.2014, 13:47 #17
Тему закрепил, а там посмотрим
0
Dmitriy_M
1354 / 1235 / 114
Регистрация: 20.03.2009
Сообщений: 4,429
Записей в блоге: 11
27.01.2014, 11:04 #18
Хм. Под Debian 6 без дополнительных пинков configure не проходит.
0
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
27.01.2014, 14:02  [ТС] #19
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Под Debian 6 без дополнительных пинков configure не проходит.
что именно не проходит?
0
KOSHAK_
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 108
26.12.2014, 17:16 #20
Никак не получается собрать библиотеки. Выскакивает ошибка:
Код
Running configuration tests...
The test for linking against libxcb and support libraries failed!
 You might need to install dependency packages, or pass -qt-xcb.
 See src/plugins/platforms/xcb/README.
Пробовал добавлять ключ -qt-xcb, выдало:
Код
NOTE: libxkbcommon and libxkbcommon-x11 0.4.1 or higher not found on the system, will use 
the bundled version from 3rd party directory.
Could not find qmake configuration file linux-g++.
Error processing project file: /home/oleg/Загрузки/qt-everywhere-opensource-src-5.3.2/qt.pro
А с -no-xcb:
Код
Could not find qmake configuration file linux-g++.
Error processing project file: /home/oleg/Загрузки/qt-everywhere-opensource-src-5.3.2/qt.pro
В чем может быть проблема? Версия Qt 5.3.2

Добавлено через 1 час 22 минуты
kUbuntu 14.10

Добавлено через 3 часа 44 минуты
Все установилось, надо было выполнять команды из под рута

Добавлено через 27 минут
В общем все прописал, скомпилировал, а прога все равно не запускается на компе без Qt. Требует шрифты, которрые лежат в папке с Qt библиотеками. Как это исправить?
0
KOSHAK_
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 108
29.12.2014, 11:28 #21
Есть тут кто живой?
0
8Observer8
1568 / 958 / 122
Регистрация: 05.10.2013
Сообщений: 3,342
Записей в блоге: 55
08.01.2015, 13:28 #22
Выглядит сложно. Пока не вчитывался. Вот здесь выглядит проще: http://help.ubuntu.ru/wiki/qt_static Пока не пробовал
0
8Observer8
1568 / 958 / 122
Регистрация: 05.10.2013
Сообщений: 3,342
Записей в блоге: 55
12.01.2015, 15:51 #23
Помогите, пожалуйста, очень нужна помощь. Пытаюсь собрать Qt статически на Linux Mint 13 по этой инструкции: http://help.ubuntu.ru/wiki/qt_static

Вот мои шаги. Поставил Mint. Ввёл команду:

sudo apt-get install build-essential ^libxcb.* libx11-xcb-dev libglu1-mesa-dev libxrender-dev libfontconfig1-dev
Ввожу команду конфигурирования:
./configure -prefix "/home/ivan/Qt5.4.0_Static" -static -platform linux-g++ -release -opensource -confirm-license -fontconfig -no-compile-examples -nomake examples -nomake tests -nomake tools -opengl desktop -qt-sql-sqlite -make libs -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -qt-freetype
Результат конфигурирования:

Configure summary

Build type: * *linux-g++ (i386, CPU features: none detected)

Build options:
*Configuration .......... accessibility accessibility-atspi-bridge audio-backend avx c++11 clock-gettime clock-monotonic concurrent evdev eventfd fontconfig full-config getaddrinfo getifaddrs gif harfbuzz iconv inotify ipv6ifname jpeg large-config largefile linuxfb medium-config minimal-config mremap nis opengl pcre png posix_fallocate precompile_header qpa qpa reduce_exports reduce_relocations release rpath small-config sse2 sse3 sse4_1 sse4_2 ssse3 static system-freetype xcb xcb-glx xcb-plugin xcb-render xcb-xlib xkbcommon-qt xlib xrender zlib
*Build parts ............ *libs
*Mode ................... release
*Using C++11 ............ yes
*Using gold linker....... no
*Using PCH .............. yes
*Target compiler supports:
* *SSE2/SSE3/SSSE3 ...... yes/yes/yes
* *SSE4.1/SSE4.2 ........ yes/yes
* *AVX/AVX2 ............. yes/no

Qt modules and options:
*Qt D-Bus ............... runtime
*Qt Concurrent .......... yes
*Qt GUI ................. yes
*Qt Widgets ............. yes
*Large File ............. yes
*QML debugging .......... yes
*Use system proxies ..... no

Support enabled for:
*Accessibility .......... yes
*ALSA ................... no
*CUPS ................... no
*Evdev .................. yes
*FontConfig ............. yes
*FreeType ............... yes (system library)
*Glib ................... no
*GTK theme .............. no
*HarfBuzz ............... yes (bundled copy)
*Iconv .................. yes
*ICU .................... no
*Image formats:
* *GIF .................. yes (in QtGui, using bundled copy)
* *JPEG ................. yes (in QtGui, using bundled copy)
* *PNG .................. yes (in QtGui, using bundled copy)
*journald ............... no
*mtdev .................. no
*Networking:
* *getaddrinfo .......... yes
* *getifaddrs ........... yes
* *IPv6 ifname .......... yes
* *OpenSSL .............. no
*NIS .................... yes
*OpenGL / OpenVG:
* *EGL .................. no
* *OpenGL ............... desktop
* *OpenVG ............... no
*PCRE ................... yes (bundled copy)
*pkg-config ............. yes
*PulseAudio ............. no
*QPA backends:
* *DirectFB ............. no
* *EGLFS ................ no
* *KMS .................. no
* *LinuxFB .............. yes
* *XCB .................. yes (system library)
* * *EGL on X ........... no
* * *GLX ................ yes
* * *MIT-SHM ............ yes
* * *Xcb-Xlib ........... yes
* * *Xcursor ............ yes (loaded at runtime)
* * *Xfixes ............. yes (loaded at runtime)
* * *Xi ................. yes (loaded at runtime)
* * *Xi2 ................ no
* * *Xinerama ........... yes (loaded at runtime)
* * *Xrandr ............. yes (loaded at runtime)
* * *Xrender ............ yes
* * *XKB ................ no
* * *XShape ............. yes
* * *XSync .............. yes
* * *XVideo ............. yes
*Session management ..... yes
*SQL drivers:
* *DB2 .................. no
* *InterBase ............ no
* *MySQL ................ no
* *OCI .................. no
* *ODBC ................. no
* *PostgreSQL ........... no
* *SQLite 2 ............. no
* *SQLite ............... qt-qt
* *TDS .................. no
*udev ................... no
*xkbcommon .............. yes (bundled copy, XKB config root: /usr/share/X11/xkb)
*zlib ................... yes (bundled copy)


WARNING: Using static linking will disable the use of dynamically
loaded plugins. Make sure to import all needed static plugins,
or compile needed modules into the library.
Info: creating super cache file /home/ivan/Qt5.4.0/5.4/Src/.qmake.super

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /home/ivan/Qt5.4.0_Static

Prior to reconfiguration, make sure you remove any leftovers from
the previous build.
Ввожу команду make и через 20 минут получаю ошибку: "Project ERROR: Unknown module(s) in QT: dbus"

rm -f ../../lib/libQt5Gui.a
mv -f libQt5Gui.a ../../lib/
make[3]: Leaving directory `/home/ivan/Qt5.4.0/5.4/Src/qtbase/src/gui'
cd platformheaders/ && ( test -e Makefile || /home/ivan/Qt5.4.0/5.4/Src/qtbase/bin/qmake /home/ivan/Qt5.4.0/5.4/Src/qtbase/src/platformheaders/platformheaders.pro -o Makefile ) && make -f Makefile
make[3]: Entering directory `/home/ivan/Qt5.4.0/5.4/Src/qtbase/src/platformheaders'
make[3]: Nothing to be done for `first'.
make[3]: Leaving directory `/home/ivan/Qt5.4.0/5.4/Src/qtbase/src/platformheaders'
cd platformsupport/ && ( test -e Makefile || /home/ivan/Qt5.4.0/5.4/Src/qtbase/bin/qmake /home/ivan/Qt5.4.0/5.4/Src/qtbase/src/platformsupport/platformsupport.pro -o Makefile ) && make -f Makefile
Project ERROR: Unknown module(s) in QT: dbus
make[2]: *** [sub-platformsupport-make_first] Error 3
make[2]: Leaving directory `/home/ivan/Qt5.4.0/5.4/Src/qtbase/src'
make[1]: *** [sub-src-make_first] Error 2
make[1]: Leaving directory `/home/ivan/Qt5.4.0/5.4/Src/qtbase'
make: *** [module-qtbase-make_first] Error 2
0
KOSHAK_
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 108
14.01.2015, 13:36 #24
Как отучить проекты требовать QTшный шрифт?
0
RazrFalcon
1379 / 1236 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
14.01.2015, 13:44 #25
Цитата Сообщение от KOSHAK_ Посмотреть сообщение
QTшный шрифт?
Что?!
0
KOSHAK_
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 108
14.01.2015, 13:46 #26
При запуске на другом компе, где нет Qt, программа просит папку fonts из папки с Qt библиотеками (при запуске через терминал). Если по тому пути, что указан в ошибке положить папку fonts, то программа запускается
0
RazrFalcon
1379 / 1236 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
14.01.2015, 13:50 #27
Какая версия Qt и ОС? У Qt нет "своих" шрифтов, по этому и требовать он ничего не может.
0
KOSHAK_
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 108
14.01.2015, 13:54 #28
Qt 5.3.2, ОС kUbuntu 14.10. Папка, которую он требует, лежит по адресу: /usr/local/Qt5_static/lib/fonts
0
RazrFalcon
1379 / 1236 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
14.01.2015, 14:05 #29
Видимо не верно собрано, так как не должно быть такой папки, у меня ее нет ни в статике, ни в динамике.
0
KOSHAK_
1 / 1 / 0
Регистрация: 16.11.2011
Сообщений: 108
14.01.2015, 14:25 #30
Да все точно по инструкции, часа полтора-два все это дело собиралось и устанавливалось. Компилирую в конфигурации Release. Может где-то в Qt Creator надо настройки изменить?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2015, 14:25
Привет! Вот еще темы с ответами:

Учебник по qt5 - C++ Qt
Я знаю, что этот вопрос много раз задавался, но везде под 4 версию, а там, где просят учебники под 5, нет ответа пожалуйста, посоветуйте...

Qt5 + Raspberry Pi - C++ Qt
Кто-нибудь может подсказать и описать, каким образом я могу собрать сам Qt5 под Raspberry Pi (кросс-компиляцией какой-нибудь, чтобы этот...

QT5/0/1 библиотеки - C++ Qt
есть код, есть хекс и длл файл и исходники, нет библиотек. кто сможет помочь? уже 5 сутки долбаюсь. вот само задание &quot;Задача о...

Qt5 Vk API - C++ Qt
Всем привет. Решил поиграться с vk api. Возник не большой трабл. Имеем три файла #include &lt;QObject&gt; #include &lt;QWidget&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Yandex
Объявления
14.01.2015, 14:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru