Russian Qt Forum
Ноябрь 22, 2024, 13:59
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Компиляторы
>
Клонирование проекта с MinGW 4.8.1 не получается
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Клонирование проекта с MinGW 4.8.1 не получается (Прочитано 12881 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Клонирование проекта с MinGW 4.8.1 не получается
«
:
Март 27, 2014, 14:14 »
Делал проект на Qt 5.2.0, MinGW 4.8.1, Cmake 2.8 (Windows XP). Изначально ставил CMake, потом MinGW, потом Qt. MinGW отдельно ставился, потому что до этого стояла старая версия со старым Qt, с ней проект не импортировался. Уже не помню точно, были какие-то мелкие нюансы, но все как-то практически сразу работало, особых проблем не встретил. Сейчас надо клонировать этот же проект, причем только исходники и сам проект, на голую Win7. А также написать документацию, чтобы потом при необходимости кто-то другой смог проект установить на другую машину с 0. Ставлю на W7 в том же порядке - CMake, MinGW, Qt. В проекте есть только CMakeLists.txt, он импортируется, проект в QtCreator открылся. Нажимаю собрать и получаю сообщение об ошибке в системном инклюде - нет файла wdm.h в ntddk.h. Смотрю - ntddk.h и прочие системные .h берутся из каталога ....mingw32\include, который вложен в установку Qt. А в проекте, который у меня собирается и работает уже давно, они берутся из каталога, который вложен в место установки MinGW. Смотрю настройки проектов, маршруты и т.д. и не вижу разницу - вроде всё одинаково в обоих случаях. Бьюсь уже полдня и не могу найти - где расходятся настройки, почему инклюды в первом случае берутся из одного места, во втором из другого, и главное не понятно - почему в обоих случаях (вложенный в Qt и отдельно установленный) используется MinGW x32 v4.8.1, но системные инклюды в них
совершенно разные
, даже написаны разными людьми.
Где я прозевал настройки?
«
Последнее редактирование: Март 31, 2014, 10:51 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Bepec
Гость
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #1 :
Март 27, 2014, 14:25 »
Ну тут надо смотреть, действительно ли всё собирается оттуда, откуда вы думаете. Могут цепляться инклуды из других мест/утилит и прочего.
PS по-моему ntddk является частью Windows DDK. Но тут minGw, а по нему я не знаю
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #2 :
Март 27, 2014, 14:29 »
Так я в QtCreator вижу - ntddk в рабочем проекте берется из C:\mingw\include\ddk, а в новом из C:/qt/qt5.2.0/tools/mingw48_32/i686-w64-mingw32/include/ddk. Но нигде не могу найти, где эти каталоги заданы, и почему именно такие у них маршруты.
Записан
2^7-1 == 127, задумайтесь...
Bepec
Гость
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #3 :
Март 27, 2014, 14:36 »
Эмм.. переменные окружения посмотрите - я так понимаю это винда
Так же пути могут быть заданы в pro файле в секции INCLUDE += вроде.
В чем проблема то ? В том что файла нет, или что файл по пути есть, но креатор его не видит?
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #4 :
Март 27, 2014, 14:51 »
переменные окружения все в порядке, в них маршруты не задаются, кроме одного - умолчательный маршрут к бинарникам mingw в PATH, он у меня в обоих случаях одинаковый, и показывает на отдельную установку mingw
файла .pro нет в проекте вообще, есть CMakeLists.txt, в нем тоже маршруты к инклюдам mingw нигде не заданы, и разумеется, раз это клон проекта, то CMakeLists.txt точно такой же
проблема в том, что клон проекта не компилируется, выдает ошибки в системных инклюдах, в клоне они почему-то берутся не из того места, откуда должны
вписал в CMakeLists.txt клона явно указание где еще можно брать инклюды
include_directories("C:/mingw/include")
получил толпу ошибок в системных инклюдах, которые тащятся из c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include
ПОЧЕМУ в комплект с Qt включены одни системные инклюды MinGW, а в отдельную поставку MinGW
той же версии
- совершенно другие, несовместимые??? это саботаж такой?
«
Последнее редактирование: Март 27, 2014, 14:58 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Bepec
Гость
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #5 :
Март 27, 2014, 15:10 »
Эмм.. Удалил недавно Qt 5.2+ не могу проверить, но там насколько я помню тоже не было ntddk.
В Qt (я не совсем понимаю CMAKE, но он по-моему парсит pro файлы Qt) видимо прописаны пути поиска для стандартного minGw, нне?
PS пробуйте, устанавливайте только нужный вам minGw, сносите идущий с Qt. Тут уже вступает в дело шаманство. У меня недавно вон собрался проект с зависимостью от древних библиотек, которые тихо мирно прятались. На другом компе конечно же не собралось бы
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #6 :
Март 27, 2014, 15:14 »
в коде приложения есть строка
#include <ddk/ntddpar.h>
и в работающем проекте, и в клоне это ссылка на c:\mingw\include\ddk\ntddpar.h
открываю этот файл в обоих проектах - он одинаковый, в нем есть строка
#include "ntddk.h"
в работающем проекте она ссылается на c:\mingw\include\ddk\ntddk.h
в неработающем на c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\ddk\ntddk.h
и эти файлы уже разные...
- хотя файл c:\mingw\include\ddk\ntddk.h
ТОЖЕ СУЩЕСТВУЕТ
- ну ладно бы его не было, нашло по маршруту одноименный в другом каталоге, но он есть, и порядок просмотра маршрутов тоже ни при чем - в каталоге c:\qt\qt5.2.0\tools\mingw48_32\i686-w64-mingw32\include\ddk есть и файл ntddpar.h, однако он был открыт из маршрута c:\mingw\include\ddk
где, в какой момент, почему поменялся маршрут
ну да, я вижу, что во втором случае двойные кавычки у ntddk.h, но это "текущий" файл не для всего проекта, а для файла ntddpar.h, значит он должен браться в том же каталоге - но нет, и он берется непонятно по какому принципу
и вообще где порядок перебора маршрутов в QtCreator задается - никак не могу найти...
«
Последнее редактирование: Март 27, 2014, 15:44 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #7 :
Март 27, 2014, 15:18 »
Цитата: Bepec от Март 27, 2014, 15:10
я не совсем понимаю CMAKE, но он по-моему парсит pro файлы Qt
нет, нифига... проект приложения изначально был сделан на CMake/GNU, там никакого Qt в помине не было, Qt уже я потом подшил, но сначала импортировал и собрал приложение без использования Qt в QtCreator
а Qt подшивается в отдельной библиотеке, которая вообще собирается отдельным проектом, и уже её .dll указана в проекте CMake, и грузится эта библиотека при старте приложения - то есть, маршруты проекта, который использует Qt, никак с маршрутами проекта CMake не связаны
«
Последнее редактирование: Март 27, 2014, 15:20 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
kamre
Частый гость
Offline
Сообщений: 233
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #8 :
Март 27, 2014, 16:07 »
CMake при запуске какой MinGW toolchain находит, если из консоли запускать без всяких QtCreator?
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #9 :
Март 28, 2014, 07:58 »
если просто запустить cmake CMakeLists.txt то начинает генерить для Visual Studio 2005, которая тоже есть на целевой машине
при запуске с ключом -G "MinGW Makefiles" ругается, что не найден RC компилятор, просит установить переменную среды CMAKE_RC_COMPILER
я так понимаю, это к виндозным ресурсам - но при чем тут они, если они в проекте вообще не используются, и вообще никаких ресурсов в приложении, собираемом с помощью CMake нет и в помине, оно глухо консольное и мультиплатформенное
«
Последнее редактирование: Март 28, 2014, 08:46 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #10 :
Март 28, 2014, 15:36 »
Хех... установил на еще одну голую машину (на самом деле, всё это проделывается в виртуалках, то есть, число голых машин не ограничено) всё тоже самое, но Qt ставил без встроенного MinGW.
И исходники главного приложения откомпилировались... Правда, там есть косяк какой-то в отдельном MinGW, ошибка в хидере wchar.h, почему-то нет типа intptr_t. Лечится добавкой typdef int intptr_t; после чего всё компиляется. Но сборка приложения не проходит - нет моей библиотеки, которая использует Qt. Но её и не может быть - нет ведь встроенного MinGW, который для компиляции с Qt используется.
Вот ведь намутили с этими MinGW в Qt! Два совершенно разных, хотя одной и той же версии.
В понедельник попробую еще раз установить Qt с MinGW
после
отдельного MinGW, и внимательно настроить использование комплектов в креаторе. Похоже, проблема именно в этом - тщательно надо настраивать использование MinGW, поскольку для основного приложения используется отдельный, встроенным в Qt оно не компилируется. А для библиотеки с Qt, наоборот, используется встроенный, отдельным она не компилируется. Как-то это всё у меня при первом разе на автомате получилось правильно полгода назад, но сейчас повторить пока не удалось.
Записан
2^7-1 == 127, задумайтесь...
Bepec
Гость
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #11 :
Март 28, 2014, 20:16 »
Qt компилируется любым. Просто тот, который идёт с ним проверен разработчиками
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #12 :
Март 31, 2014, 08:35 »
Ну не буду же я из-за библиотеки в 2000 строк перекомпилировать весь Qt отдельным MinGW...
При открытии проекта библиотеки в его настройках такая надпись:
Отсутствуют подходящие комплекты
. При этом отдельный MinGW в списке комплектов, разумеется, есть.
«
Последнее редактирование: Март 31, 2014, 08:44 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
(РЕШЕНО) Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #13 :
Март 31, 2014, 09:40 »
В общем, всё получилось, внимательно надо только было настроить использование компиляторов: для сборки всего приложения использовать отдельно установленный MinGW, а для сборки моей библиотеки MinGW из комплекта Qt. Почему-то после установки Qt в настройках комплекта Desktop Qt ... MinGW поле sysroot оказалось пустое, и для библиотеки по-умолчанию qmake не запускался.
Теперь всё это придется повторить и описать по шагам, а то достанется это когда-нибудь отмороженному виндузятнику, он же ничего вообще сделать не сможет...
Записан
2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Клонирование проекта с MinGW 4.8.1 не получается
«
Ответ #14 :
Март 31, 2014, 11:35 »
И блин, не получается повторить... после установки Qt и MinGW в любом порядке в мастере запуска CMake, в поле Генератор есть только генератор для конфигурации MinGW из Desktop Qt 5.2.0.
Получилось один раз наверно только потому, что я сначала ставил Qt без встроенного MinGW, а потом еще раз устанавливал уже со встроенным. Но это уже шаманство, непредсказуемо и не гарантировано, что повторится.
Вот же блин горелый...
КАК ЗАСТАВИТЬ QtCreator НАЙТИ ГЕНЕРАТОР ДЛЯ CMake ИЗ ОТДЕЛЬНО УСТАНОВЛЕННОГО MinGW???
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...