Russian Qt Forum
Ноябрь 22, 2024, 18:15
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Установка, сборка, отладка, тестирование
>
компиляция приложений в qt4 под win32 ..... проблемы
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: компиляция приложений в qt4 под win32 ..... проблемы (Прочитано 16621 раз)
blackliteon
Гость
компиляция приложений в qt4 под win32 ..... проблемы
«
:
Июль 29, 2005, 12:45 »
Привет.
Пытаюсь создать и откомпайлить проект:
qmake -project
qmake
nmake
версия qt коммерческая.
Так вот nmake не может найти хедеры (ну и есс-но либы) куте.
Как прописать их, чтобы было ему всё видно (nmake-у).
Спасибо.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
компиляция приложений в qt4 под win32 ..... проблемы
«
Ответ #1 :
Июль 29, 2005, 14:22 »
а переменная окружения QMAKESPEC у тебя настроена?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
blackliteon
Гость
Переменная окружения
«
Ответ #2 :
Июль 29, 2005, 15:03 »
Можно подробнее что за переменная и как её настроить ?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
компиляция приложений в qt4 под win32 ..... проблемы
«
Ответ #3 :
Июль 29, 2005, 15:24 »
по идее, она служит для определения системы сборки (компилятора) и должна содержать название каталога с соответствующими инклудами (например, QMAKESPEC =win32-msvc.net). Устанавливается обычно автоматически. Кроме этого, должна быть установлена переменная QTDIR на корень инсталляции и PATH на подкаталог bin в инсталляции.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
blackliteon
Гость
вроде ясно
«
Ответ #4 :
Июль 29, 2005, 15:52 »
Как думаешь, может qmake сам виноват (т.е. я его не полностью понял).
Примеры же компайлятся в начале установки, а не распаковываются, насколько я понял. А бинарники у меня в release лежат как пологен. Т.е. сама qt примеры компайлила без проблем. Интересно мнение
Записан
L.Marvell
Гость
компиляция приложений в qt4 под win32 ..... проблемы
«
Ответ #5 :
Июль 29, 2005, 16:40 »
My Computer -> Properties -> Advanced > Environments Variables
Смотрим: PATH, QMAKESPEC, QTDIR
Постим сюда.
Записан
blackliteon
Гость
Здорово
«
Ответ #6 :
Июль 29, 2005, 16:59 »
Спасибо.
Интересно, если INCLUDE прописывается тоже в "переменные окружения", как это делать для Qt? Там есть INCLUDE, только вот если обычно там прямо и лежат .h файлики, то в куте ещё один уровень поддиректорий (а в нём может быть ещё). Как тогда указать? И насколько я понял, опции Visual C6->Directories (include + lib) не действуют на nmake.
Записан
LamerDrv
Гость
Re: Здорово
«
Ответ #7 :
Июль 29, 2005, 18:52 »
Цитата: "blackliteon"
Спасибо.
Интересно, если INCLUDE прописывается тоже в "переменные окружения", как это делать для Qt? Там есть INCLUDE, только вот если обычно там прямо и лежат .h файлики, то в куте ещё один уровень поддиректорий (а в нём может быть ещё). Как тогда указать?
Иногда, если директория include в свою очередь содержит набор подкаталогов, то в переменной окружения path прописывают путь к верхнему каталогу, а в листингах программ пишут примерно так
#include <QtCore\qbitarray.h>
Т.е. указывают имя подкаталога.
Но кстати, в случае с QT, вообще не надо ее директорию include прописывать в переменной окружения "include". Насколько я понимаю, qmake при создании файла nmake включает в него директиву INCPATH, в которой и прописаны пути к заголовочным файлам qt.
Так что как и сказал
L.Marvell
нужны следующие переменные окржуения
PATH = c:\qt\4.0.0\bin (или где там она у тебя)
QMAKESPEC = win32-msvc.net (для VS203.NET) или win32-msvc (для VC6)
QTDIR = c:\Qt\4.0.0 (или где там она у тебя)
INCLUDE = пути к include-директории VC и/или SDK
Цитата: "blackliteon"
И насколько я понял, опции Visual C6->Directories (include + lib) не действуют на nmake.
Да не действуют. Они действуют только внутри среды VC. Так что директория include из VC6 действительно должна быть происана в переменной окружения "include", чтобы nmake работал. Если не ошибаюсь где в недрах директории куда установлен VC есть bat-файл, который содержит команды SET INCLUDE (и т.п.), прописывающие все что надо для nmake (естественно это работает только для текущего консольного окна в котором запущен этот bat-файл). Аналогичный файл есть в QT (для него создается ярлык "Qt 4.0.0 Command Prompt"). Запускаешь ентот ярлык и в данной консоли qmake и nmake дожны работать нормально
Записан
blackliteon
Гость
окей, большое спасибо
«
Ответ #8 :
Июль 29, 2005, 19:18 »
Парни, большое спасибо!
Очень приятно за оперативную подднржку!
Записан
blackliteon
Гость
блин....
«
Ответ #9 :
Июль 29, 2005, 21:05 »
Блин, под консолью qt что-то хоть пошло. Но теперь пишет, что ей чего-то не хватает.... дурдом. Вообщем вначале писала, что не хватает private/qucomextra_p.h (не может найти). Выяснил, что из файлика
moc_configdialog.h:
/****************************************************************************
** ConfigDialog meta object code from reading C++ file 'configdialog.h'
**
** Created: ?? 28.
20:07:28 2005
** by: The Qt MOC ($Id: $)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#undef QT_NO_COMPAT
#include "../../../configdialog.h"
#include <qmetaobject.h>
#include <qapplication.h>
#include <private/qucomextra_p.h>
пытался простой пример откомпайлить (hello world), тоже ругается на какие-то либы....... =(
Думал, может дело в старой куте (3-3-4), взял её переместил. Так теперь столько UNRESOLVED EXTERNAL SYMBOL-ов......
Записан
LamerDrv
Гость
Re: блин....
«
Ответ #10 :
Июль 30, 2005, 08:57 »
Цитата: "blackliteon"
Вообщем вначале писала, что не хватает private/qucomextra_p.h (не может найти).
Файл qucomextra_p.h точно из QT3.3.4. В версии 4.0.0 такого нет
Кстати, в нем любопытный комментарий
// This file is not part of the Qt API. This header file may
// change from version to version without notice, or even be
// removed.
Цитата: "blackliteon"
Думал, может дело в старой куте (3-3-4), взял её переместил.
Похоже в ней.
Проверь значения ранее упомянутых переменных окружения непосредственно в консольном окне командами SET QTDIR, SET QMAKESPEC и т.д.
Записан
blackliteon
Гость
что творится.....
«
Ответ #11 :
Июль 30, 2005, 10:21 »
Перекинулся на линь, ужас, думал хоть будет что-то.....
полностью откомпайлил за несколько часов опенсорсную куту.
Опять она мне откомпайлила бинарники (успешно).
а потом делаю:
qmake -project (работает)
qmake (пишет Project LOAD(): Feature qt_config cannot be found.)
nmake не работает (или нет makefile или ошибок миллион)
Переменные QTDIR, LD_...._LIB прописал - хоть makefile начал делаться (порядка 3-5 ошибок),
решил PATH ещё потрогать: потрогал..... ошибок штук 50 make начал давать.
С виндой осталось только qt3 полностью вырезать и поставить снова 4ую.
Записан
blackliteon
Гость
а под виндой....
«
Ответ #12 :
Июль 30, 2005, 11:30 »
Удалил полностью 3ю куте, думал может дело в ней.......
А теперь на первый туториал (даже мейк не переделывал, просто ввёл
nmake
)
NMAKE -f Makefile.Release
link /LIBPATH:"C:\Qt\4.0.0\lib" /LIBPATH:"C:\Qt\4.0.0\lib" /NOLOGO /SUBSYSTEM:WINDOWS /OUT:"release\t1.exe" @C:\DOCUME~1\6321~1.66C\LOCALS~1\Temp\nma02120.
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Mutex::_Unlock(void)" (__imp_?_Unlock@_Mutex@std@@QAEXXZ)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::_Mutex::_Lock(void)" (__imp_?_Lock@_Mutex@std@@QAEXXZ)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::locale::facet::_Register(void)" (__imp_?_Register@facet@locale@std@@QAEXXZ)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall bad_cast::bad_cast(char const *)" (__imp_??0bad_cast@@QAE@PBD@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned int __cdecl std::ctype<char>::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@D@std@@SAIPAPBVfacet@locale@2@@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: class std::locale::facet const * __thiscall std::locale::_Getfacet(unsigned int)const " (__imp_?_Getfacet@locale@std@@QBEPBVfacet@12@I@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::_Lockit::_Lockit(int)" (__imp_??0_Lockit@std@@QAE@H@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: static unsigned int __cdecl std::ctype<unsigned short>::_Getcat(class std::locale::facet const * *)" (__imp_?_Getcat@?$ctype@G@std@@SAIPAPBVfacet@locale@2@@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(unsigned int,char)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ID@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(unsigned short const *)" (__imp_??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@PBG@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: __thiscall std::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >::basic_string<unsigned short,struct std::char_traits<unsigned short>,class std::allocator<unsigned short> >(unsigned int,unsigned short)" (__imp_??0?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE@IG@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::basic_ostream<unsigned short,struct std::char_traits<unsigned short> >::_Osfx(void)" (__imp_?_Osfx@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXXZ)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall std::basic_istream<unsigned short,struct std::char_traits<unsigned short> >::_Ipfx(bool)" (__imp_?_Ipfx@?$basic_istream@GU?$char_traits@G@std@@@std@@QAE_N_N@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall std::basic_istream<char,struct std::char_traits<char> >::_Ipfx(bool)" (__imp_?_Ipfx@?$basic_istream@DU?$char_traits@D@std@@@std@@QAE_N_N@Z)
qtmain.lib(qtmain_win.obj) : error LNK2001: unresolved external symbol "__declspec(dllimport) public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (__imp_?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ)
release\t1.exe : fatal error LNK1120: 16 unresolved externals
Записан
LamerDrv
Гость
компиляция приложений в qt4 под win32 ..... проблемы
«
Ответ #13 :
Июль 31, 2005, 09:48 »
Может у тебя переменная окружения QMAKESPEC установлена неправильно. (Например, равна "win32-msvc.net" в то время как ты используешь Visual C++6.0). Для Visal C++ 6.0 - должно быть равно "win32-msvc"
Насчет удаления 3-ей QT - это ты конечно погорячился. У меня (да и у других) стоят обе версии и работают. Хотя я, честно говоря, 3-ю уже не пробовал некоторое время, но с 4-ой все в порядке и третья ей никак не мешает.
Как вариант: может быть ты в переменные окружения include и/или lib пытался вписать пути к заголовкам и/или библиотекам самой QT? Как раз этого делать НЕ надо.
На всякий случай вот значения, которые у меня в системе (правда у меня Visual C++.NET, а не 6-ой):
PATH - e:\Qt\4.0.0\bin;E:\Qt\3.3.4\bin;...
QMAKESPEC - win32-msvc.net
QTDIR - e:\Qt\4.0.0
INCLUDE - E:\Program Files\VS2003\Vc7\include;E:\Program Files\VS2003\Vc7\PlatformSDK\Include
LIB - E:\Program Files\VS2003\Vc7\lib;E:\Program Files\VS2003\Vc7\PlatformSDK\Lib
Записан
blackliteon
Гость
наверное ты прав
«
Ответ #14 :
Август 01, 2005, 16:01 »
Может быть..... у меня стояла вместе с .net
Приду домой, попробую. Под линью запустил, правда оказалось что нужно из /usr/bin старый кумейк удалить, т.к. в путях он (эта директория) оказалась раньше. С меня пиво, если под виндой запустится 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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...