Связывание Qt в динамическую библиотеку - PullRequest
1 голос
/ 18 июля 2009

У меня есть динамическая библиотека, которая прекрасно работает, и я хотел бы использовать в ней QObject. После включения заголовка "qobject.h" я компилирую и все в порядке. Но когда я пытаюсь объявить QObject, компилятор всегда выдает мне ошибку «идентификатор не найден». Я попробовал продвинуть класс QObject, это не помогло. Это странно, потому что intellisense в Visual Studio работает, когда я использую Qt в моей dll (например, когда я объявляю QObject, Visual sdio показывает мне функции, доступные для моего QObject). Что мне нужно сделать, чтобы использовать Qt в динамической библиотеке? Должен ли я скомпилировать его с помощью qmake сейчас, когда я использую QObject?

спасибо за помощь

Dave

РЕДАКТИРОВАТЬ: проблемы, кажется, возникает только после того, как я включил stdafx.h. Если я попытаюсь включить заголовки Qt после Stdafx.h, моя библиотека не сможет скомпилироваться, что вызовет синтаксические ошибки. Если я использую ссылку Qt до включения Stdafx.h, он компилируется и работает нормально, но это бесполезно, потому что я не могу использовать ссылки Qt в моем существующем коде.

1>c:\users\dave\documents\visual studio 2008\projects\frogger\froggerdll\ftclient.cpp(47) : error C2653: 'QWidget' : is not a class or namespace name
1>c:\users\dave\documents\visual studio 2008\projects\frogger\froggerdll\ftclient.cpp(47) : error C3861: 'find': identifier not found

речь идет о QWidget :: find (hwnd); и я в том числе QWidget

1 Ответ

0 голосов
/ 18 июля 2009

Вы установили интеграцию между VS и Qt? Я действительно считаю, что это нужно (вместо использования qmake) как для приложений, так и для библиотек. Что касается проблемы stdafx, я предполагаю, что вы, вероятно, сталкиваетесь с конфликтующими макросами между этим заголовком и qobject-ом (но если я правильно вас понял, вы можете обойти проблему, включив их в следующем порядке, сначала qobject, а затем stdafx - это это правильно?). [[Очевидно, нет, согласно последнему комментарию ФП]].

Редактировать : некоторые инструкции по настройке интеграции VS / Qt: здесь , если вы используете версию QPL 4.5 для LGPL - в противном случае я считаю, что продукт интеграции коммерческое предложение. (Если вам не нужны особые аспекты Visual Studio, вы можете вместо этого упростить свою жизнь, используя вместо этого Qt Creator , но я понимаю, что VS и лежащий в его основе C ++ компилятор могут быть предпочтительнее в других отношениях ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...