Russian Qt Forum
Ноябрь 23, 2024, 20:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сборка Qt программы  (Прочитано 8608 раз)
cptJack
Гость
« : Сентябрь 13, 2011, 10:22 »

Всем привет!

Создал программу Qt по книжке на одном компе, скопировал папки Name и Name-build-desktop на др. комп, на котором программа и не запускается...Требует некоторые .dll. В нете нашел много тем на эту тему, там предлагается динамически, или статически собирать проект. Как я понял, динамическая сборка нужна для последующей доработки проекта на др. машине, статическая - это уже готовый релиз.

Если я не прав, поправьте меня, пожалуйста, ибо я в Qt всего пару дней, а научиться очень хочется.

Собственно вопрос - как собирать проект Qt динамически? Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Сентябрь 13, 2011, 10:25 »

Ищи по форуму. Это одна из наиболее поднимающихся тем.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Даниил
Гость
« Ответ #2 : Сентябрь 13, 2011, 10:27 »

Динамическая сборка - сборка проекта, при котором с программой тебе необходимо поставлять необходимые *.dll файлы. При статической сборке, ты имеешь на выходе, лишь один *.exe файл.

Есть два вида сборки программы: Debug и Release.
Тип сборки указывается в QtCreator - Внизу слева есть иконка компьютера, на неё нажимаешь и меняешь состояние.
Или же можно указать в в .pro файле:
Код:
CONFIG += release
При сборке Debug, тебе будет такскать с программой dll-ки с суфиксом "d", они имеют больший вес: QtCored4.dll.
Про статическую сбоку, есть много тем, как на данном форуме, так и в интернете.
Записан
cptJack
Гость
« Ответ #3 : Сентябрь 13, 2011, 10:32 »

Ок, большое спасибо Улыбающийся
Записан
cptJack
Гость
« Ответ #4 : Сентябрь 13, 2011, 12:28 »

Появился у меня еще вопрос. Скопировал папки проекта по такому же пути, что и на первом компьютере. На втором ПК в PATH добавил путь к .bin, запускаю проект на втором ПК, собираю, все нормально...Даже без копирования библиотек с суффиксом d    .dll. Вопрос - почему так? Непонимающий
Записан
cptJack
Гость
« Ответ #5 : Сентябрь 13, 2011, 12:33 »

А, кажется догнал - сборки статическую или динамическую нужно делать, чтобы на машине, без установленной библиотеки Qt и прочего, спокойно запускалось написанное на Qt приложение? Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #6 : Сентябрь 13, 2011, 13:33 »

статическую
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Сентябрь 13, 2011, 17:05 »

cptJack, можно и не делать статическую, читай тут
Записан

Юра.
cptJack
Гость
« Ответ #8 : Сентябрь 13, 2011, 17:09 »

Всем большое спасибо! Улыбающийся
Записан
PavelVX
Гость
« Ответ #9 : Сентябрь 16, 2011, 17:36 »

Тогда подскажите, плиз, почему может быть такой баг:
делаю все как тут описанно http://wiki.crossplatform.ru/index.php/Развертывание_приложений_Qt_в_MS_Windows
Qt установлена в C:\Qt\2010.05\qt. В программе использую SQLite, phonon
Соответственно из C:\Qt\2010.05\qt\bin сливаю все нужные dll, из C:\Qt\2010.05\qt\plugins\sqldrivers
к моему приложению создаем папку sqldrivers и кладем туда qsqlite4.dll.
При попытке запустить получаем следующие ситуации:
1. win2000srv: приложение говорит, нет дров для sqlite!. Хотя вывод на экран QSqlDatabase::drivers() говорит, что sqlite она подхватила. Грустный
2. winXP sp3, win7: приложение запускается. Но не цепляется графика! phonon стартует, но изображение не дает. Картинки, прицепленные на QLabel/QPushbutton из файловой системы не показываются.
И вот что теперь делать, кому верить нопонятно. Кто что посоветует, куда копать?
По поводу п1. У нас тестовое рабочее приложение на Qt, к базе цепляется через odbc. Дак оно работает, и не возникает.
По п2. сборка и запуск приложения осуществляется и под XP (рисунки есть, видео нет) и под вин7 (все есть), а вот на левых машинах, косяки Грустный
Качается свежий сдк под вин, может это поможет.
« Последнее редактирование: Сентябрь 16, 2011, 18:09 от PavelVX » Записан
PavelVX
Гость
« Ответ #10 : Сентябрь 17, 2011, 10:56 »

Обновил SDK. не помогло. Отключил phonon, пересобрал проект. Картинки так и не укладываются на QLabel Ж(
Записан
Даниил
Гость
« Ответ #11 : Сентябрь 17, 2011, 13:33 »

Выложи код. Поглядим.
Записан
PavelVX
Гость
« Ответ #12 : Сентябрь 17, 2011, 15:53 »

Я или где-то неправльно делаю, или что тут особо укладывать:
mainwindow.h
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:

};

#endif // MAINWINDOW_H
mainwindow.cpp
Код:
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{


    QLabel * imageFooter = new QLabel(this);
    QImage image("d:/varejki.jpg");
    imageFooter->setPixmap(QPixmap::fromImage(image));
    imageFooter->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
    imageFooter->setScaledContents(true);


}

MainWindow::~MainWindow()
{

}
Все, собираем проект в релиз варианте. Кладем рядом libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll. В корневую D кидаем картинку. Запускаем на другом, чистом компе и все, получаем чистую форму, без картинки.
Записан
BRE
Гость
« Ответ #13 : Сентябрь 17, 2011, 18:45 »

Поищи по форуму (ну или в документации) вот такое слово: imageformats
Записан
PavelVX
Гость
« Ответ #14 : Сентябрь 17, 2011, 20:22 »

BRE, СПАСИБО!!! Один из самых ценных советов за сегодня!!!
Все заработало, даже больше, чем я расчитывал!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.