0

我在 linux 上使用 qt 4.7 和 qxmpp 0.7.6 制作项目,一切正常我在 Windows 上安装 Qt 5.2,编译 qxmpp 并安装它,它已成功完成并在 C:\Qt\Qt5.2.0\5.2.0\msvc2010\include\qxmpp目录中,似乎一切顺利我从 linux 复制项目,更改qxmpp 的 includepath 所以它现在适合 windows 并运行 qmake,没问题,但是当我想运行它时,我得到了 122 个错误,看起来像这样:

mainwindow.obj:-1: error: LNK2019: unresolved external symbol “__declspec(dllimport) public: virtual __thiscall QXmppCallManager::~QXmppCallManager(void)” (__imp_??1QXmppCallManager@@UAE@XZ) referenced in function “public: virtual __thiscall MainWindow::~MainWindow(void)” (??1MainWindow@@UAE@XZ)

所有错误都针对 qxmpp 类

这是我的 .pro 文件

INCLUDEPATH += "C:\Qt\Qt5.2.0\5.2.0\msvc2010\include\qxmpp"
 
QT       += core gui network xml multimedia widgets
 
TARGET = IM-client
TEMPLATE = app
 
 
SOURCES += main.cpp\
#more sources etc

知道这是什么原因造成的吗?

4

1 回答 1

2

您没有将您的项目与 qxmpp 库链接。我不知道它如何在没有该LIBS += ...行的情况下在 linux 下编译。

我敢打赌:你已经删掉了这LIBS条线,那条线是从 Linux 编译中留下的,在 Windows 上没有意义。您需要像对 INCLUDEPATH 所做的那样对其进行调整。

您可能还希望对两个平台进行单独的设置,这样您就不必不断调整项目文件:

win32 {
  INCLUDEPATH += ...
  LIBS += ...
}
unix {
  INCLUDEPATH += ...
  LIBS += ...
}
于 2014-01-21T17:53:04.787 回答