【发布时间】:2011-03-09 21:36:41
【问题描述】:
系统信息:win xp SP3,Microsoft Visual Studio 2008 版本 9.0.21022.8 RTM
Microsoft .NET 框架 版本 3.5 SP1
Qt 插件 1.1.5
我从站点 http://qt.nokia.com/downloads/windows-cpp-vs2008 安装了 Qt 4.6.3。 然后我添加了 Add-in Qt 1.1.5 并配置了 PATH 变量。
当我打开一个新的 QT 项目时,默认示例可以正常工作。
在诺基亚 (qt) 网站上,我找到了一些示例,但似乎没有正常工作。
这是许多不起作用的示例之一:
#include <QtGui>
#include <QWidget>
class QLabel;
class QLineEdit;
class QTextEdit;
class AddressBook : public QWidget
{
Q_OBJECT
public:
AddressBook(QWidget *parent = 0);
private:
QLineEdit *nameLine;
QTextEdit *addressText;
};
AddressBook::AddressBook(QWidget *parent)
: QWidget(parent)
{
QLabel *nameLabel = new QLabel(tr("Name:"));
nameLine = new QLineEdit;
QLabel *addressLabel = new QLabel(tr("Address:"));
addressText = new QTextEdit;
QGridLayout *mainLayout = new QGridLayout;
mainLayout->addWidget(nameLabel, 0, 0);
mainLayout->addWidget(nameLine, 0, 1);
mainLayout->addWidget(addressLabel, 1, 0, Qt::AlignTop);
mainLayout->addWidget(addressText, 1, 1);
setLayout(mainLayout);
setWindowTitle(tr("Simple Address Book"));
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
AddressBook addressBook;
addressBook.show();
return app.exec();
}
编译器这样说 ::
输出窗口
正在链接...
main.obj : error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall AddressBook::metaObject(void)const " (?metaObject@AddressBook@@UBEPBUQMetaObject@@XZ)
main.obj : error LNK2001: unresolved external symbol "public: virtual void * __thiscall AddressBook::qt_metacast(char const *)" (?qt_metacast@AddressBook@@UAEPAXPBD@Z)
main.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall AddressBook::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@AddressBook@@UAEHW4Call@QMetaObject@@HPAPAX @Z)
main.obj : error LNK2001: unresolved external symbol "public: static struct QMetaObject const AddressBook::staticMetaObject" (?staticMetaObject@AddressBook@@2UQMetaObject@@B)
C:\Documents and Settings\nik\My Documents\Visual Studio 2008\Projects\vs_03\Debug\vs_03.exe : 致命错误 LNK1120: 4 unresolved externals
结果
构建日志保存在“file://c:\Documents and Settings\nik\My Documents\Visual Studio 2008\Projects\vs_03\vs_03\Debug\BuildLog.htm” vs_03 - 5 个错误,0 个警告
在我看来,这与宏 Q_OBJECT 的使用有关,但只是不知道该怎么做,这件事开始正常工作。
可能是安装错误或...没有想法
感谢任何帮助。
【问题讨论】:
-
似乎与 MOC 相关。确保 MOC 正在为此示例生成匹配的 moc_.cpp 文件。如果是,请确保将 moc_.cpp 文件添加到项目中。
-
你有使用过 VS2008-Qt 的经验吗?分几步有什么解释吗?
-
抱歉,很遗憾没有。我从命令行执行大部分操作,所以我的建议类似于 Timo 的建议。
标签: c++ visual-studio-2008 qt