Russian Qt Forum
Ноябрь 24, 2024, 18:35
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
Перевод приложения с Linux на Windows
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Перевод приложения с Linux на Windows (Прочитано 17367 раз)
Danila_Bagrofff
Гость
Перевод приложения с Linux на Windows
«
:
Апрель 13, 2009, 13:31 »
Впервые решил попробовать пересобрать приложение, работающее в линуксе, в винду на QtCreator'е. Но что-то не очень успешно.
Как-то с про-файлами раньше не работал. make-файл в линуксе проблем нет составить. Но что надо прописывать в pro-файл, чтобы правильно откомпилировать? Само, собой, никакие линукс-библиотеки в приложении не используются. Только голый c++ и qt.
Но что-то не очень компилится. В чем проблема? Можете посмотреть?
Записан
Rcus
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #1 :
Апрель 13, 2009, 13:42 »
А как именно не компилится? на Qt SDK 2009.01 (WinXP) все работает (только пара предупреждений).
Записан
spirit
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #2 :
Апрель 13, 2009, 13:47 »
студией собрал, работает, собрал Qt SDK тоже, пару ворнингов было и все.
Записан
Danila_Bagrofff
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #3 :
Апрель 13, 2009, 14:01 »
Цитата: Rcus от Апрель 13, 2009, 13:42
А как именно не компилится? на Qt SDK 2009.01 (WinXP) все работает (только пара предупреждений).
предупреждения - фиг с ними. а вот что выдает компилятор:
Цитировать
Running build steps for project drag...
Creating gdb macros library...
Configuration unchanged, skipping QMake step.
Starting: C:/Qt/2009.01/mingw/bin/mingw32-make.exe debug -w
mingw32-make: Entering directory `C:/drag'
C:/Qt/2009.01/mingw/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/drag'
g++ -c -g -Wall -frtti -fexceptions -mthreads -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"..\Qt\2009.01\qt\include\QtCore" -I"..\Qt\2009.01\qt\include\QtGui" -I"..\Qt\2009.01\qt\include" -I"..\Qt\2009.01\qt\include\ActiveQt" -I"debug" -I"." -I"..\Qt\2009.01\qt\mkspecs\win32-g++" -o debug\main.o main.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -mthreads -Wl -Wl,-subsystem,windows -o debug\grag.exe debug/dialog.o debug/main.o debug/moc_dialog.o -L"c:\Qt\2009.01\qt\lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4
mingw32-make[1]: Leaving directory `C:/drag'
mingw32-make: Leaving directory `C:/drag'
Exited with code 0.
правда собираю тут:
Цитировать
Qt Creator 1.0.0
Based on Qt 4.5.0
Built on Feb 27 2009 at 09:34:37
Copyright 2008-2009 Nokia Corporation. All rights reserved.
The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
или не тем собираю?
«
Последнее редактирование: Апрель 13, 2009, 14:02 от Danila_Bagrofff
»
Записан
Rcus
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #4 :
Апрель 13, 2009, 14:07 »
Вывод сообщений показывает что компиляция и линковка прошли успешно...
Записан
Danila_Bagrofff
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #5 :
Апрель 13, 2009, 14:13 »
хм, а почему тогда не запускается приложение?
в папке debug нашел файл:
g
rag.exe, но при запуске:
Цитировать
Starting ...
The process could not be started!
А через оконный менеджер:
Цитировать
Приложению не удалось запуститься, поскольку mingwm10.dll не был найден. Повторная установка приложения ...
Ща попробую переустановить, но что-то с трудом верится, что это поможет запустить приложение.
Записан
Danila_Bagrofff
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #6 :
Апрель 13, 2009, 14:26 »
не помогло. все тоже. может, что-то не так устанавливаю?
у меня один исходный файл: qt-sdk-win-opensource-2009.01.exe
Вроде в него все вшито. Или чего-то может не хвататать?
Может, вы юзаете более позднюю версию?
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Перевод приложения с Linux на Windows
«
Ответ #7 :
Апрель 13, 2009, 14:46 »
Цитировать
Приложению не удалось запуститься, поскольку mingwm10.dll не был найден. Повторная установка приложения ...
Вам нужно положить mingw10.dll вместе с exe шником. Возможно, если у вас Qt собрана не статиком то потребуются также и QtGui, QtCore ... ну и что вы там использовали...
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Danila_Bagrofff
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #8 :
Апрель 13, 2009, 14:51 »
Цитата: shapoclak от Апрель 13, 2009, 14:46
Вам нужно положить mingw10.dll вместе с exe шником. Возможно, если у вас Qt собрана не статиком то потребуются также и QtGui, QtCore ... ну и что вы там использовали...
Так, как-то странно получается... мне что, придется каждый раз класть либу к exe-нику?? как-то нелогично.
У меня только исходный exe-ник со всей приблудой qt. Я не могу внести никакие изменения в сборку.
Мне, может, где-то другую версию попробовать скачать?...
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Перевод приложения с Linux на Windows
«
Ответ #9 :
Апрель 13, 2009, 14:57 »
Цитировать
Так, как-то странно получается... мне что, придется каждый раз класть либу к exe-нику?? как-то нелогично.
У меня только исходный exe-ник со всей приблудой qt. Я не могу внести никакие изменения в сборку.
А по-моему всё очень логично...
Если хотите чтоб всё в одном exe файле было, соберите вашу Qt статически.
./configure -release -static .... Эта теме не нова, поищите по форуму.
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Danila_Bagrofff
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #10 :
Апрель 13, 2009, 14:59 »
либу то она сама должна находить. Она есть в папке $Qt\bin\
Но чего-то не хватает. Да и из самой папки приложения она не берет либу.
видимо, самособиралка не катит, нужно из исходников поднимать библиотеку, стобы статиком задать...
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Перевод приложения с Linux на Windows
«
Ответ #11 :
Апрель 13, 2009, 15:08 »
Цитировать
видимо, самособиралка не катит, нужно из исходников поднимать библиотеку, стобы статиком задать...
Мне не совсем понятно, вы как exe запускаете: через QtCreator (Ctr + R) или заходите в каталог и мышью кликаете? Если последний вариант то нужно с exe держать библиотеки mingw10.dll (QtGui4.dll, QtCore4.dll, ... это если вы собрали как release, а если в debug то QtGuid4.dll, QtCored.4.dll, ...)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Danila_Bagrofff
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #12 :
Апрель 13, 2009, 15:13 »
Цитата: shapoclak от Апрель 13, 2009, 15:08
Мне не совсем понятно, вы как exe запускаете: через QtCreator (Ctr + R) или заходите в каталог и мышью кликаете? Если последний вариант то нужно с exe держать библиотеки mingw10.dll (QtGui4.dll, QtCore4.dll, ... это если вы собрали как release, а если в debug то QtGuid4.dll, QtCored.4.dll, ...)
И из папки дебага и из папки релиза пробовал:
Цитировать
(через QtCreator (Ctr + R))
Цитировать
Starting ...
The process could not be started!
А через оконный менеджер: (
Цитировать
заходите в каталог и мышью кликаете?
)
Цитировать
Приложению не удалось запуститься, поскольку mingwm10.dll не был найден. Повторная установка приложения ...
То есть и из самого креатора не запускается.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Перевод приложения с Linux на Windows
«
Ответ #13 :
Апрель 13, 2009, 15:42 »
В переменую среду PATH Windows пропиши пути к директории $QTDIR\bin, и к той директории где лежит mingw10.dll, перегрузи комп, и будет тебе счастье.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
SABROG
Гость
Re: Перевод приложения с Linux на Windows
«
Ответ #14 :
Апрель 13, 2009, 20:22 »
Цитата: pastor от Апрель 13, 2009, 15:42
В переменую среду PATH Windows пропиши пути к директории $QTDIR\bin, и к той директории где лежит mingw10.dll, перегрузи комп, и будет тебе счастье.
Вообще в первый раз вижу человека знакомого с linux больше, чем с windows (это я о MinGW).
Я бы не рекомендовал этого делать (решать проблему через пути в PATH). Объясню почему. Если приложение использует плагины (даже те, которые лежат в папке в исходниками Qt), то и плагины и программа пытаются подгрузить в память каждый свой экземпляр библиотек Qt (QtGui*.dll, QtCore*.dll и т.д.). Это приводит к тому, что приложение крашится. Возникает проблема с выполнением плагина и приложения в разных потоках. Я не знаю как обстоят дела в *nix'ах, но под виндой это именно так (откровенно говоря не понимаю почему это происходит, ведь системные библиотеки по 100 раз не загружаются для каждой программы, но для Qt дела обстоят так) . По-нормальному это должно происходить следующим образом: при запуске программы должны загружаться в память Qt'шные библиотеки, затем подргужается плагин и использует те библиотеки, которые уже загружены и являются общими и для программы и для плагинов. И это нормально работает, когда Qt'шные библиотеки находятся в папке с .exe'шником. Предчувствуя гневные посты типа "это касается только тех приложений, которые используют плагины" и т.д., хочу сказать, что лучше сразу привыкать делать по-нормальному иначе это чревато системными ошибками, которые и опытный Qt'шник не отловит через дебаггер.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...