Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2008, 13:29   #1
ASGAlex
 
Аватар для ASGAlex
 
Регистрация: 05.10.2008
Сообщений: 4
По умолчанию qt4, win32 и статическая линковка.

В linux всё отлично собирается и работает. Но в windows возникают проблемы.

Имеется: библиотека libHelpDialog.a и соответствующий заголовок HelpDialog.h. Имеется так же приложение, с которым эта библиотек статически линкуется.
При сборке получаем:

Код:
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o "bin\lokus_kontrola.exe" 
build\mainwindowimpl.o build\main.o build\showimage.o build\moc_mainwindowimpl.o build\moc_showimage.o build\moc_HelpDialogs.o build\qrc_resource.o  
-L"c:\Qt\4.3.0\lib" -lmingw32 -lqtmain -lHelpDialogs -lQtGui4 -lQtCore4

mingw32-make[1]: Leaving directory `C:/Documents and Settings/All Users.WINDOWS/Документы/пси-тесты/lokus_kontrola'

build\mainwindowimpl.o(.text+0x1c9):mainwindowimpl.cpp: undefined reference to `AboutDialog::AboutDialog(QString)'

build\mainwindowimpl.o(.text+0x2e99):mainwindowimpl.cpp: undefined reference to `AboutDialog::AboutDialog(QString)'

collect2: ld returned 1 exit status
mingw32-make[1]: *** [bin\lokus_kontrola.exe] Error 1
mingw32-make: *** [release] Error 2
Это при том, что заголовки подключены, библиотека компилятором найдена. Вот фрагменты кода, вызывающие проблему:

HelpDialogs.h:класс, содержащийся в библиотеке.
Код:
class AboutDialog  :public QDialog
{
public:
    QVBoxLayout *verticalLayout;
    QTabWidget *About;
    QWidget *AboutPrg;
    QVBoxLayout *verticalLayout_2;
    QTextEdit *TextAbout;
    QWidget *License;
    QVBoxLayout *verticalLayout_3;
    QTextEdit *TextLicense;
    QPushButton *close;
    AboutDialog(const QString about);
	
};
mainwindowimpl.cpp:конструктор класса, где вызывается конструктор AoutDialog. Если закомментировать эту строчку, то всё скомпилится, следовательно проблема в том, что компилятор не видит реализации AboutDialog.
Код:
MainWindowImpl::MainWindowImpl( QWidget * parent, Qt::WFlags f) 
	: QMainWindow(parent, f)
{
	setupUi(this);
	
	About_dlg= new AboutDialog(QApplication::translate("","<b>Методика УСК</b><br>Р
азработчик: ASGAlex (asgalex@gmail.com)",0,QApplication::UnicodeUTF8));
Ну и ключевой вопрос: что я делаю не так?))

Последний раз редактировалось rpy3uH; 09.11.2008 в 19:10.
ASGAlex вне форума Ответить с цитированием
Старый 03.06.2009, 14:30   #2
driims
 
Регистрация: 02.06.2009
Сообщений: 3
По умолчанию

Что-то я нигде не заметил ключа: -lHelpDialog
driims вне форума Ответить с цитированием
Старый 03.06.2009, 15:02   #3
ASGAlex
 
Аватар для ASGAlex
 
Регистрация: 05.10.2008
Сообщений: 4
По умолчанию

Проблеме уже лет эдак 200, давно уже разобрался, но спасибо, что хоть сейчас заметили :-D =) :lol:
ASGAlex вне форума Ответить с цитированием
Старый 09.06.2009, 09:13   #4
driims
 
Регистрация: 02.06.2009
Сообщений: 3
По умолчанию

Цитата:
Сообщение от ASGAlex Посмотреть сообщение
Проблеме уже лет эдак 200, давно уже разобрался, но спасибо, что хоть сейчас заметили :-D =) :lol:
хе)
Я сам только на днях на этом форуме появился со своей проблемой и что-то не глянул совсем на дату сообщения, рядом с моим ближе кверху болталось, вот собственно и полез
driims вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
прием сообщений win32 oto_aki Общие вопросы C/C++ 9 26.02.2008 20:58
Линковка... GHOST_Kasper Работа с сетью в Delphi 13 21.11.2007 16:06