![]() |
вот создаю проет с помощью QT"шного мастера, добавляю код из примера, компилирую....
для стандартных примеров 1-6 все работает, но когда в проекте появляется несколько файлов то начинаются проблеммы: ------ Build started: Project: qt002, Configuration: Release Win32 ------ Linking... LINK : warning LNK4199: /DELAYLOAD:comdlg32.dll ignored; no imports found from comdlg32.dll LINK : warning LNK4199: /DELAYLOAD:oleaut32.dll ignored; no imports found from oleaut32.dll LINK : warning LNK4199: /DELAYLOAD:winmm.dll ignored; no imports found from winmm.dll LINK : warning LNK4199: /DELAYLOAD:wsock32.dll ignored; no imports found from wsock32.dll LINK : warning LNK4199: /DELAYLOAD:winspool.dll ignored; no imports found from winspool.dll 001.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall LCDRange::qt_property(int,int,class QVariant *)" (?qt_property@LCDRange@@UAE_NHHPAVQVariant@@@Z) 001.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall LCDRange::qt_emit(int,struct QUObject *)" (?qt_emit@LCDRange@@UAE_NHPAUQUObject@@@Z) 001.obj : error LNK2001: unresolved external symbol "public: virtual bool __thiscall LCDRange::qt_invoke(int,struct QUObject *)" (?qt_invoke@LCDRange@@UAE_NHPAUQUObject@@@Z) 001.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall LCDRange::qt_cast(char const *)" (?qt_cast@LCDRange@@UAEPAXPBD@Z) 001.obj : error LNK2001: unresolved external symbol "public: virtual char const * __thiscall LCDRange::className(void)const " (?className@LCDRange@@UBEPBDXZ) 001.obj : error LNK2019: unresolved external symbol "public: static class QMetaObject * __cdecl LCDRange::staticMetaObject(void)" (?staticMetaObject@LCDRange@@SAPAVQMetaObject@@XZ) referenced in function "public: virtual class QMetaObject * __thiscall LCDRange::metaObject(void)const " (?metaObject@LCDRange@@UBEPAVQMetaObject@@XZ) .\qt002.exe : fatal error LNK1120: 6 unresolved externals Build log was saved at "file://e:\Qtpro\qt002\Release\BuildLog.htm" qt002 - 7 error(s), 5 warning(s) причем код где произошла ошибка я посмотреть не могу... может я не так что то делаю? PS QT 3.2.1 |
Vlad Drakula
так ты на qt под windows пишешь? забавно =) смотри - там ругань идет на стандартные (неqt) win - библиотеки. Может там быть такое, что где-то что-то при установке пакета не прописано? (сугубо вслепую, нигде кроме linux-а с qt эксперементировать не приходилось) |
mar
Ругань идёт на то что эти библиотеки подлинковываются, но из них ничего не используется. Vlad Drakula А ругань на то что пониде идёт о том, что он не находит ф-ии на которые ссылается твоя программа (в частности - методы кутэшных классов). В опциях проекта подключи соответствующие .lib, и всё будет хорошо. Голая теория, с QT сношений не имел. |
mar
а можешь про использовании в линуксе написать что ни буть (с нуля), у меня RH9.0, KDev, QT. как мне все это сопрячь для удобной работы? PS я просто ничего сложного под линксом не писал. так что можно по бодробнее??? буду очень благодарен. |
с нуля очень пример и как делать показан на firststeps http://www.firststeps.ru/linux/qt/qt1.html
(а я окошек под Linux-ом тоже практически не писала =) Добавлено: и еще - по скорости работы, наверное стоит смотреть в строну gtk. Впрочем, это дело вкуса |
mar
тут даже не в скорости дела, а в удобстве и кросс платформенности + Qt поддерживает экспишность в своих программах! |
Vlad Drakula
ну для меня скорость и 'нетяжелость' значит много =) gtk - все-таки библиотеки на которых сделан Gimp, а это уже само за себя говорит. А qt-для KDE, а KDE такая тяжелая штука, что многие ее вообще стараются не ставить. А что касается переносимости, я далеко не уверена, что qt-windows приложения будут конкурентоспособны по сравнению с win - приложениями написанными и скомпилированными под MSVС по тем же показателям - скорость-размеры.. |
Vlad Drakula
А прогу то пишите с комерческой целью. Если да то qt ведь покупать надо :) |
2Vlad Drakula : Скорее всего при инталляции QT использовалась small-модель. Поэтому некоторых KDE-библиотек не хваиает.
2mar: Сила QT вовсе не в скорости, а в портируемости. |
hasherfrog
какие библиотеки KDE под виндой..... на счет портируемости ты прав, но я до сихпор не смог заставить ее работать.... |
Sorry, спешил и оговорился. Хотел две мысли высказать одной фразой. Не библиотеки, а компоненты. LCDRange, на отсутствие которого ругается библиотекарь MVS, это визуальный компонент, разработанный для KDE. Его объектник не включается в библиотеку QT, если выбрана модель установки small.
Если намерения серьезные, поставь Full :) |
hasherfrog
еще раз какое KDE под виндой, к томуже у меня нету никаких настроек в инсталлере кроме выбора драйверов баз данных. |
Дошло до меня... Спешить не надо было. Забудьте все, что я наговорил выше - полнейшую чушь, это точно.... :(
Внимание, правильный ответ. Дело не в "нескольких файлах", а в "добавляю код из примера" и в "Project: qt002". Дело в том, что в проекте "t7 " вводится QOBJECT в lcd_range.h. Файлы, имеющие такой максрос, должны обрабатываться moc (Meta Object compiler, кажется) до собственно компиляции. В учебном проекте эта обработка выполняется в файле .dsp (загляни туда с помощью блокнота, и увидишь, что IF $CFG="t7 - Debug" ляляля moc.exe lcd_range.h" Первой фразой в окне output при компиляции будет что-то типа "Moc'ing lcd_range.h". После работы moc'a появиться файл moc_lcd_range.cpp. Настоящий source-code класса LCDRange будет именно здесь. В Linux'e подобные директивы прописываются в Makefile, в MSVS, как видим, в dsp. Поэтому... Либо надо руками дописать в твой qt-002.dsp(dsw) указание вызвать moc перед компиляцией (через закладку "Custom build"), или это должен как-то делать сам MSVS с подачи Qt-Wizard'a (тут я ничего не могу посоветовать, у меня нет VS2003) PS. Это очень грубое объяснение, но подробно можно рассказывать часами, там много подводных камней. |
Цитата:
|
подробнее о чем? О вкладке Custom build или формате .dsp-файлов? Я повторяю, у меня нет VS2003, sorry.... Для данного конкретного случая я просто сообразил, в чем дело, а рассказывать вообще о QT или VS здесь не имеет смысла. Поконкретнее, пожалуйста
|
Время: 17:32. |
Время: 17:32.
© OSzone.net 2001-