crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Проблемы со статической сборкой., Ошибки линкера в VS 2005
defnull
  опции профиля:
сообщение 11.5.2008, 19:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Добрый день. Столкнулся с проблемой переноса работающих QT приложений на другие машины. Было решено использовать статическую сборку.

1) Установил Qt. 4.3.4
2) Выставил переменные окружения.
3) Открыл Visual Studio 2005 Command Prompt и соответственно войдя в папку с QT выбрал configure -static && nmake

После длительной сборки установил интегратор QT на VS.

Открываю VS 2005 интегратор встал нормально, всё ок.
При попытке компилирования линкер не нашёл библиотеки QtCored4.lib. Я читал статью по линковке на сайте и помнил что при статической линковке либы меняют свои названия в которых пропадают буквы. В свойствах проекта, в линкере указал необходимые либы, просто убрав цифру 4.
После чего вроде как либы он видит.. но посыпалось уйма ошибок линкера.
CODE

------ Build started: Project: qt_kashestvo, Configuration: Debug Win32 ------
Linking...
LINK : C:\Share\qt_kashestvo\Debug\qt_kashestvo.exe not found or not built by the last incremental link; performing full link
main.obj : warning LNK4217: locally defined symbol ??1QApplication@@UAE@XZ (public: virtual __thiscall QApplication::~QApplication(void)) imported in function _main
main.obj : warning LNK4217: locally defined symbol ?exec@QApplication@@SAHXZ (public: static int __cdecl QApplication::exec(void)) imported in function _main
main.obj : warning LNK4217: locally defined symbol ?show@QWidget@@QAEXXZ (public: void __thiscall QWidget::show(void)) imported in function _main
main.obj : warning LNK4217: locally defined symbol ??0QApplication@@QAE@AAHPAPADH@Z (public: __thiscall QApplication::QApplication(int &,char * *,int)) imported in function _main
main.obj : warning LNK4217: locally defined symbol ??1QWidget@@UAE@XZ (public: virtual __thiscall QWidget::~QWidget(void)) imported in function "public: virtual __thiscall Window_mein::~Window_mein(void)" (??1Window_mein@@UAE@XZ)
window_mein.obj : warning LNK4049: locally defined symbol ??1QWidget@@UAE@XZ (public: virtual __thiscall QWidget::~QWidget(void)) imported
window_mein.obj : warning LNK4217: locally defined symbol ?setLayout@QWidget@@QAEXPAVQLayout@@@Z (public: void __thiscall QWidget::setLayout(class QLayout *)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?addLayout@QBoxLayout@@QAEXPAVQLayout@@H@Z (public: void __thiscall QBoxLayout::addLayout(class QLayout *,int)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?addStretch@QBoxLayout@@QAEXH@Z (public: void __thiscall QBoxLayout::addStretch(int)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?addWidget@QBoxLayout@@QAEXPAVQWidget@@HV?$QFlags@W4AlignmentFlag@Qt@@@@@Z (public: void __thiscall QBoxLayout::addWidget(class QWidget *,int,class QFlags<enum Qt::AlignmentFlag>)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?setItem@QTableWidget@@QAEXHHPAVQTableWidgetItem@@@Z (public: void __thiscall QTableWidget::setItem(int,int,class QTableWidgetItem *)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QTableWidgetItem@@QAE@ABVQString@@H@Z (public: __thiscall QTableWidgetItem::QTableWidgetItem(class QString const &,int)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?setEditTriggers@QAbstractItemView@@QAEXV?$QFlags@W4EditTrigger@QAbstractItemView@@@@@Z (public: void __thiscall QAbstractItemView::setEditTriggers(class QFlags<enum QAbstractItemView::EditTrigger>)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?setVerticalHeaderLabels@QTableWidget@@QAEXABVQStringList@@@Z (public: void __thiscall QTableWidget::setVerticalHeaderLabels(class QStringList const &)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?setHorizontalHeaderLabels@QTableWidget@@QAEXABVQStringList@@@Z (public: void __thiscall QTableWidget::setHorizontalHeaderLabels(class QStringList const &)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?number@QString@@SA?AV1@HH@Z (public: static class QString __cdecl QString::number(int,int)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?connect@QObject@@QBE_NPBV1@PBD1W4ConnectionType@Qt@@@Z (public: bool __thiscall QObject::connect(class QObject const *,char const *,char const *,enum Qt::ConnectionType)const ) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QString@@QAE@XZ (public: __thiscall QString::~QString(void)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QPushButton@@QAE@ABVQString@@PAVQWidget@@@Z (public: __thiscall QPushButton::QPushButton(class QString const &,class QWidget *)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QComboBox@@QAE@PAVQWidget@@@Z (public: __thiscall QComboBox::QComboBox(class QWidget *)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QTableWidget@@QAE@HHPAVQWidget@@@Z (public: __thiscall QTableWidget::QTableWidget(int,int,class QWidget *)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QVBoxLayout@@QAE@XZ (public: __thiscall QVBoxLayout::QVBoxLayout(void)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QHBoxLayout@@QAE@XZ (public: __thiscall QHBoxLayout::QHBoxLayout(void)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z (public: __thiscall QWidget::QWidget(class QWidget *,class QFlags<enum Qt::WindowType>)) imported in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QHBoxLayout@@UAE@XZ (public: virtual __thiscall QHBoxLayout::~QHBoxLayout(void)) imported in function "public: virtual void * __thiscall QHBoxLayout::`scalar deleting destructor'(unsigned int)" (??_GQHBoxLayout@@UAEPAXI@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QVBoxLayout@@UAE@XZ (public: virtual __thiscall QVBoxLayout::~QVBoxLayout(void)) imported in function "public: virtual void * __thiscall QVBoxLayout::`scalar deleting destructor'(unsigned int)" (??_GQVBoxLayout@@UAEPAXI@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QTableWidget@@UAE@XZ (public: virtual __thiscall QTableWidget::~QTableWidget(void)) imported in function "public: virtual void * __thiscall QTableWidget::`scalar deleting destructor'(unsigned int)" (??_GQTableWidget@@UAEPAXI@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QComboBox@@UAE@XZ (public: virtual __thiscall QComboBox::~QComboBox(void)) imported in function "public: virtual void * __thiscall QComboBox::`scalar deleting destructor'(unsigned int)" (??_GQComboBox@@UAEPAXI@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QPushButton@@UAE@XZ (public: virtual __thiscall QPushButton::~QPushButton(void)) imported in function "public: virtual void * __thiscall QPushButton::`scalar deleting destructor'(unsigned int)" (??_GQPushButton@@UAEPAXI@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??1QTableWidgetItem@@UAE@XZ (public: virtual __thiscall QTableWidgetItem::~QTableWidgetItem(void)) imported in function "public: virtual void * __thiscall QTableWidgetItem::`scalar deleting destructor'(unsigned int)" (??_GQTableWidgetItem@@UAEPAXI@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?setEnabled@QWidget@@QAEX_N@Z (public: void __thiscall QWidget::setEnabled(bool)) imported in function "public: void __thiscall Window_mein::indexC(int)" (?indexC@Window_mein@@QAEXH@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?setText@QTableWidgetItem@@QAEXABVQString@@@Z (public: void __thiscall QTableWidgetItem::setText(class QString const &)) imported in function "public: void __thiscall Window_mein::obrabotka(void)" (?obrabotka@Window_mein@@QAEXXZ)
window_mein.obj : warning LNK4217: locally defined symbol ?number@QString@@SA?AV1@NDH@Z (public: static class QString __cdecl QString::number(double,char,int)) imported in function "public: void __thiscall Window_mein::obrabotka(void)" (?obrabotka@Window_mein@@QAEXXZ)
window_mein.obj : warning LNK4217: locally defined symbol ?takeItem@QTableWidget@@QAEPAVQTableWidgetItem@@HH@Z (public: class QTableWidgetItem * __thiscall QTableWidget::takeItem(int,int)) imported in function "public: void __thiscall Window_mein::obrabotka(void)" (?obrabotka@Window_mein@@QAEXXZ)
window_mein.obj : warning LNK4049: locally defined symbol ?shared_null@QListData@@2UData@1@A (public: static struct QListData::Data QListData::shared_null) imported
window_mein.obj : warning LNK4217: locally defined symbol ??0QString@@QAE@ABV0@@Z (public: __thiscall QString::QString(class QString const &)) imported in function "public: void __thiscall QList<class QString>::append(class QString const &)" (?append@?$QList@VQString@@@@QAEXABVQString@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?append@QListData@@QAEPAPAXXZ (public: void * * __thiscall QListData::append(void)) imported in function "public: void __thiscall QList<class QString>::append(class QString const &)" (?append@?$QList@VQString@@@@QAEXABVQString@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ?end@QListData@@QBEPAPAXXZ (public: void * * __thiscall QListData::end(void)const ) imported in function "private: void __thiscall QList<class QString>::detach_helper(void)" (?detach_helper@?$QList@VQString@@@@AAEXXZ)
window_mein.obj : warning LNK4217: locally defined symbol ?detach2@QListData@@QAEPAUData@1@XZ (public: struct QListData::Data * __thiscall QListData::detach2(void)) imported in function "private: void __thiscall QList<class QString>::detach_helper(void)" (?detach_helper@?$QList@VQString@@@@AAEXXZ)
window_mein.obj : warning LNK4217: locally defined symbol ?begin@QListData@@QBEPAPAXXZ (public: void * * __thiscall QListData::begin(void)const ) imported in function "private: void __thiscall QList<class QString>::detach_helper(void)" (?detach_helper@?$QList@VQString@@@@AAEXXZ)
window_mein.obj : warning LNK4217: locally defined symbol ?qFree@@YAXPAX@Z (void __cdecl qFree(void *)) imported in function "private: void __thiscall QList<class QString>::free(struct QListData::Data *)" (?free@?$QList@VQString@@@@AAEXPAUData@QListData@@@Z)
window_mein.obj : warning LNK4217: locally defined symbol ??4QString@@QAEAAV0@ABV0@@Z (public: class QString & __thiscall QString::operator=(class QString const &)) imported in function "private: void __thiscall QList<class QString>::node_construct(struct QList<class QString>::Node *,class QString const &)" (?node_construct@?$QList@VQString@@@@AAEXPAUNode@1@ABVQString@@@Z)
window_mein.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall QComboBox::addItems(class QStringList const &)" (__imp_?addItems@QComboBox@@QAEXABVQStringList@@@Z) referenced in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
window_mein.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall QString::QString(char const *)" (__imp_??0QString@@QAE@PBD@Z) referenced in function "public: __thiscall Window_mein::Window_mein(class QWidget *)" (??0Window_mein@@QAE@PAVQWidget@@@Z)
QtCored.lib(qeventdispatcher_win.obj) : error LNK2019: unresolved external symbol _WSAAsyncSelect@16 referenced in function "public: void __thiscall QEventDispatcherWin32Private::doWsaAsyncSelect(int)" (?doWsaAsyncSelect@QEventDispatcherWin32Private@@QAEXH@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmSetCandidateWindow@8 referenced in function "public: virtual void __thiscall QWinInputContext::update(void)" (?update@QWinInputContext@@UAEXXZ)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmSetCompositionWindow@8 referenced in function "public: virtual void __thiscall QWinInputContext::update(void)" (?update@QWinInputContext@@UAEXXZ)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmSetCompositionFontA@8 referenced in function "public: virtual void __thiscall QWinInputContext::update(void)" (?update@QWinInputContext@@UAEXXZ)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmSetCompositionFontW@8 referenced in function "public: virtual void __thiscall QWinInputContext::update(void)" (?update@QWinInputContext@@UAEXXZ)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmGetContext@4 referenced in function "struct HIMC__ * __cdecl getContext(struct HWND__ *)" (?getContext@@YAPAUHIMC__@@PAUHWND__@@@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmReleaseContext@8 referenced in function "void __cdecl releaseContext(struct HWND__ *,struct HIMC__ *)" (?releaseContext@@YAXPAUHWND__@@PAUHIMC__@@@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmNotifyIME@16 referenced in function "void __cdecl notifyIME(struct HIMC__ *,unsigned long,unsigned long,unsigned long)" (?notifyIME@@YAXPAUHIMC__@@KKK@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmGetCompositionStringA@16 referenced in function "long __cdecl getCompositionString(struct HIMC__ *,unsigned long,void *,unsigned long,bool *)" (?getCompositionString@@YAJPAUHIMC__@@KPAXKPA_N@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmGetCompositionStringW@16 referenced in function "long __cdecl getCompositionString(struct HIMC__ *,unsigned long,void *,unsigned long,bool *)" (?getCompositionString@@YAJPAUHIMC__@@KPAXKPA_N@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmAssociateContext@8 referenced in function "public: static void __cdecl QWinInputContext::enable(class QWidget *,bool)" (?enable@QWinInputContext@@SAXPAVQWidget@@_N@Z)
QtGuid.lib(qwininputcontext_win.obj) : error LNK2019: unresolved external symbol _ImmGetDefaultIMEWnd@4 referenced in function "struct HWND__ * __cdecl getDefaultIMEWnd(struct HWND__ *)" (?getDefaultIMEWnd@@YAPAUHWND__@@PAU1@@Z)
QtGuid.lib(qaccessible_win.obj) : error LNK2019: unresolved external symbol __imp__PlaySoundA@12 referenced in function "public: static void __cdecl QAccessible::updateAccessibility(class QObject *,int,enum QAccessible::Event)" (?updateAccessibility@QAccessible@@SAXPAVQObject@@HW4Event@1@@Z)
C:\Share\qt_kashestvo\Debug\qt_kashestvo.exe : fatal error LNK1120: 15 unresolved externals
Build log was saved at "file://c:\Share\qt_kashestvo\qt_kashestvo\Debug\BuildLog.htm"
qt_kashestvo - 16 error(s), 42 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Подскажите пожайлуста в чём может быть моя ошибка?Всё вышенаписанное делал на виртуальной машине, ибо на домашней всё скомпилированно по дефолту (я так понимаю что если в configure не указывать атрибутов то на выходе получаем динамическую линковку), всё работает и трогать не хотелось.

Эта программа работала на домашней машине, поэтому имхо сомнительно что ошиби в коде..

В принципе вариант со статической линковкой был выбран только для того чтобы бытро всё сделать, ибо время поджимает. Поэтому если вы можете подсказать как сделать перенос динамический буду рад, ибо на данный момент главное именно перенести приложение.
(з.ы. )

з.з.ы Плохо знаком с настройкой свойств проектов в VS, да и просто необходимых настроек компиляции, может быть кто-нибудь может посоветовать что-нибудь по этой теме???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.5.2008, 19:53
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(defnull @ 11.5.2008, 23:39) *
Столкнулся с проблемой переноса работающих QT приложений на другие машины

извини за офтоп, а что за проблема?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 11.5.2008, 20:00
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Возможно я выразился несколько некорректно..
Попытки перенести приложение путём простого копирования необходимых библиотек вместе с экзешником (при жинамической сборке QT) ни к чему не привели. Вjзможно дело в том что я собирал проект не как release версию.. Разбираться с этим досконально я не стал, надеясь что со статикой будет всё несколько проще.

В данном случае естественно проблема в первую очередь идёт со сборкой на статически собранных либах, а уж потом с переносом на другие машины.)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 20:22
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(defnull @ 11.5.2008, 21:01) *
Вjзможно дело в том что я собирал проект не как release версию..
А что мешает тебе перекомпилить проект в Release? ОН будет и по меньше и побыстрей работать. :)

А если так хочешь перенести, то качни Dependency Walker или найди в одной из студийных папок и посмотри, какие либы тянет за собой твой проект. После чего разумеется скопируй их в ту же папку из которой запускается твой exe'шник.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 11.5.2008, 20:48
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Попробовал скомпилировать в Release вирсию Build -> Configuration Manager -> Release
На что получил:

CODE

1>------ Rebuild All started: Project: qt_kashestvo, Configuration: Release Win32 ------
1>Deleting intermediate and output files for project 'qt_kashestvo', configuration 'Release|Win32'
1>Moc'ing window_mein.h...
1>Compiling...
1>window_mein.cpp
1>main.cpp
1>funct.cpp
1>Generating Code...
1>Linking...
1>window_mein.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall Window_mein::metaObject(void)const " (?metaObject@Window_mein@@UBEPBUQMetaObject@@XZ)
1>window_mein.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall Window_mein::qt_metacast(char const *)" (?qt_metacast@Window_mein@@UAEPAXPBD@Z)
1>window_mein.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall Window_mein::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Window_mein@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1>D:\Мои документы\Visual Studio 2005\INST\qt_kashestvo\Release\qt_kashestvo.exe : fatal error LNK1120: 3 unresolved externals
1>Build log was saved at "file://d:\Мои документы\Visual Studio 2005\INST\qt_kashestvo\qt_kashestvo\Release\BuildLog.htm"
1>qt_kashestvo - 4 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


window_mein.h
CODE

#ifndef __WINDOW_MIEM_
#define __WINDOW_MIEM_

#include <QtGui>
#include <QWidget>

class Window_mein : public QWidget{
Q_OBJECT

public:
QHBoxLayout* phbx;
QVBoxLayout* pvbx;
QTableWidget* table;
QComboBox* cbo;
QPushButton* b_ok;
int index;

public:
Window_mein(QWidget* pwgt = 0);

public slots:
void indexC(int);
void obrabotka();
};
#endif


window_mein.cpp

CODE

#include "window_mein.h"
#include "funct.h"

int t[] = {0,100,200,300,400,500,1500,1600,1700,1800,1900,2000};
//int t[] = {0,50,100,150,200,250,300,350,400,450,500,550,600,650,700,750,800,850,900,950,10
00};

Window_mein::Window_mein(QWidget *pwgt) : QWidget(pwgt)
{
index=-1;
phbx = new QHBoxLayout;
pvbx = new QVBoxLayout;
table = new QTableWidget(12,4);
//table = new QTableWidget(21,4);
cbo = new QComboBox();
b_ok = new QPushButton("Ok");

connect(b_ok, SIGNAL(clicked()), SLOT(obrabotka()));
connect(cbo, SIGNAL(activated(int)), SLOT(indexC(int)));

QStringList lst_box;
QStringList lsth;
QStringList lstv;

//Инициализация начальных значений виджетов

lst_box << "Exp" << "Gamma" << "TN";
for (int i=0; i<12; i++)
//for (int i=0; i<21; i++)
lstv.append(QString::number(t[i]));
lsth << "Probability" << "Density" << "Lymda" << "";

table->setHorizontalHeaderLabels(lsth);
table->setVerticalHeaderLabels(lstv);
table->setEditTriggers(QAbstractItemView::NoEditTriggers); // чтобы нельзя было редактировать.
// Заполнение ячеек
for (int i=0;i<12;i++)
//for (int i=0;i<21;i++)
{
for (int j=0;j<4;j++)
{
table->setItem(i,j,new QTableWidgetItem("0"));
}
}

cbo->addItems(lst_box);

pvbx->addWidget(cbo);
pvbx->addWidget(b_ok);
pvbx->addStretch();

phbx->addWidget(table);
phbx->addLayout(pvbx);

setLayout(phbx);
}
void Window_mein::indexC(int t)
{
index=t;
b_ok->setEnabled(true);
}
void Window_mein::obrabotka()
{
QTableWidgetItem *item = 0;
Exp* exp = new Exp(0.00008,0.00001);
Gamma* gamm = new Gamma(8,77,0.00001);
//Gamma* gamm = new Gamma(9,85,0.00001);
Normir* norm = new Normir(375,86,0.00001);
//Normir* norm = new Normir(380,100,0.00001);
Raspredel *rasp;

if (index == -1)
return;
if (index == 0)
rasp = exp;
if (index == 1)
rasp = gamm;
if (index == 2)
rasp = norm;

for (int i=0;i<12;i++)
//for (int i=0;i<21;i++)
{
item = table->takeItem(i,0);
item->setText(QString::number(rasp->probability(t[i])));
table->setItem(i,0,item);

item = table->takeItem(i,1);
item->setText(QString::number(rasp->density(t[i])));
table->setItem(i,1,item);

item = table->takeItem(i,2);
item->setText(QString::number(rasp->lyamda(t[i])));
table->setItem(i,2,item);
}

b_ok->setEnabled(false);
}



main.cpp

CODE

#include <QtGui>
#include <math.h>
#include "funct.h"
#include "window_mein.h"


int main(int argc, char *argv[])
{
int t[]={0,100,200,300,400,500,1500,1600,1700,1800,1900,2000};

QApplication app(argc, argv);
Window_mein window;
window.show();
return app.exec();
}


Файлы funct.h и funct.cpp не стал выкладывать ибо в них Qt как такового и нет... просто функции для дополнительного мат. вычисления.

Программа отлично компилируется в DEBUG версии а в RELEASE ни как=((

Скажу также что скопированные библиотеки + exe DEBUG версии отказались работать на машине без QT =(
Deependensy прогу я использовал и отловил DLL ки.. ВОзможно надо как-то настроить само приложение, перед билдом.. Другое дело что в VS 2005 я вообще не видел файлика *.pro в котором скорее всего это и настраивается поэтому тружно сказать =(((.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 21:04
Сообщение #6


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Судя по ошибке, скорее всего у тебя по какой-то причине не отрабатывает moc в release.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 21:41
Сообщение #7


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Попробуй в классе Window_mein закоментировать макрос Q_OBJECT, скомпилится?
Разумеется в этом случае у тебя не будут работать сигналы, это в качестве эксперимента. :)

p.s. как вариант можно еще попробовать заново собрать проект, с нуля, может при сборке что-то глюкануло в студии и не все что нужно было прописано...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 11.5.2008, 22:25
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Цитата(ViGOur @ 11.5.2008, 22:41) *
Попробуй в классе Window_mein закоментировать макрос Q_OBJECT, скомпилится?
Разумеется в этом случае у тебя не будут работать сигналы, это в качестве эксперимента. :)

p.s. как вариант можно еще попробовать заново собрать проект, с нуля, может при сборке что-то глюкануло в студии и не все что нужно было прописано...


Создал новый проект.
Закоментировал Q_OBJECT. Всё отлично скомпилировалось в Release версию.
Выполнил Build, всё работает. Раскомментировал Q_OBJECT снова скомпилировал...
Потом Build. Тоже сё работает....
мистика....

Правда одно меня настораживает...
Прикрепленное изображение


Спасибо! Осталось разобраться как перенести приложение.

Со статической сборкой всё равно не работает. Дальше компиляции не идёт=((
При динамической выдаёт ошибку что приложение сконфигурированно не правильно. :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 22:30
Сообщение #9


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(defnull @ 11.5.2008, 23:25) *
Правда одно меня настораживает...
Это так и должно быть, отработал moc и сгенерировал для тебя файл с сигналами и метаданными класса и закрыл его...

Цитата(defnull @ 11.5.2008, 23:25) *
При динамической выдаёт ошибку что приложение сконфигурированно не правильно.
Хе-хе, было у меня такое. Причем эта ошибка возникала при переносе приложения на другую машину.
Это появилось у меня после того как студия накотила себе какой-то хотфикс, я его снес и все заработало после этого... :)

А вот со статической сборкой я пока не работал, так что пока не знаю, в чем беда. :(

Сообщение отредактировал ViGOur - 11.5.2008, 22:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
defnull
  опции профиля:
сообщение 11.5.2008, 22:37
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 1.5.2008
Пользователь №: 165

Спасибо сказали: 0 раз(а)




Репутация:   1  


Понятно. Спасибо, буду пробовать.=) Хот-фиксов вроде намеренно никаких на VS 2005 не ставил
Лан... попробую связку Eclipse + MinGW, может что-нить удасться сделать, а жаль посде MinGW приложения какими-то оч габаритными получаются...

Получается перенос приложений всё равно остаётся открытым=(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 4:45