Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: nkly777 от Февраль 06, 2007, 11:07



Название: Как убрать лишние библиотеки из проекта
Отправлено: nkly777 от Февраль 06, 2007, 11:07
Я написал простое приложение вот его код
Код:

#include <QCoreApplication>
#include <QFile>
#include <QIODevice>
#include <QTextStream>
#include <iostream>

int main(int argc, char *argv[])
{
//QCoreApplication app(argc,argv);
std::cout <<"Hello"<<std::endl;
QFile file("/dev/ttyS0");
if (file.open(QIODevice::ReadWrite))
{
QTextStream out(&file);
out<<"hello"<<endl;
file.close();
}
}


вот соответствующий ему файл pro
Код:

######################################################################
# Automatically generated by qmake (2.01a) ?? ???. 28 15:35:34 2007
######################################################################

TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
CONFIG += console
# Input
SOURCES += main.cpp

затем командой ldd <имя приложения> выводится список используемых библиотек, он таков
Код:

linux-gate.so.1 =>  (0x00cc7000)
        libQtGui.so.4 => /usr/local/Trolltech/Qt-4.2.1/lib/libQtGui.so.4 (0x00178000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00c89000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x0013e000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x00122000)
        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x0302a000)
        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x00caf000)
        libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x00d02000)
        libXfixes.so.3 => /usr/X11R6/lib/libXfixes.so.3 (0x00111000)
        libXcursor.so.1 => /usr/X11R6/lib/libXcursor.so.1 (0x00ce5000)
        libXinerama.so.1 => /usr/X11R6/lib/libXinerama.so.1 (0x00cfd000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00c10000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00801000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x00bc8000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00af2000)
        libQtCore.so.4 => /usr/local/Trolltech/Qt-4.2.1/lib/libQtCore.so.4 (0x0082b000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00add000)
        libdl.so.2 => /lib/libdl.so.2 (0x00ad7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00bd9000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00d08000)
        libm.so.6 => /lib/libm.so.6 (0x00ab0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00cf1000)
        libc.so.6 => /lib/libc.so.6 (0x00de7000)
        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x00bed000)
        /lib/ld-linux.so.2 (0x0014c000)

Почему используются всякие иксовые библиотеки. Как от этого избавиться, ведь я хочу написать консольное приложение которое будет работать только в командной строке на компьютере без иксов


Название: Как убрать лишние библиотеки из проекта
Отправлено: LestorN от Февраль 06, 2007, 12:30
В pro файле

QT -= gui


Название: Как убрать лишние библиотеки из проекта
Отправлено: Alex03 от Февраль 06, 2007, 13:07
Всёж в линухе есть тут нелогичность. Само приложение тянет все СОшки, вместо того чтобы тянуть только нужные, а уж они пусть свои зависимости тянут.
Вручную поди угадай какие libICE, libXi и прочие libXхххх тянет твоя qt GUI. Особенно печально при переносе бинарника на другой линух.


Название: Как убрать лишние библиотеки из проекта
Отправлено: nkly777 от Февраль 06, 2007, 15:34
Цитата: "LestorN"
В pro файле

QT -= gui

Спасибо, помогло. Список требуемых библиотек значительно сократился.
Код:

linux-gate.so.1 =>  (0x00be4000)
        libQtCore.so.4 => /usr/local/Trolltech/Qt-4.2.1/lib/libQtCore.so.4 (0x002de000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00add000)
        libdl.so.2 => /lib/libdl.so.2 (0x00ad7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00111000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00d08000)
        libm.so.6 => /lib/libm.so.6 (0x00ab0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00cf1000)
        libc.so.6 => /lib/libc.so.6 (0x00986000)
        /lib/ld-linux.so.2 (0x0014c000)