我在 Mac 上尝试编译 QT 应用程序时遇到错误。 我关注了这个tutorial所有代码都在页面底部。
当我构建项目时,我得到以下信息:
Undefined symbols for architecture x86_64:
"DiagramItem::addArrow(Arrow*)", referenced from:
DiagramScene::mouseReleaseEvent(QGraphicsSceneMouseEvent*) in diagramscene.o
"DiagramScene::setItemType(DiagramItem::DiagramType)", referenced from:
MainWindow::buttonGroupClicked(int) in mainwindow.o
DiagramScene::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in moc_diagramscene.o
"DiagramScene::setTextColor(QColor const&)", referenced from:
MainWindow::textButtonTriggered() in mainwindow.o
"DiagramScene::setMode(DiagramScene::Mode)", referenced from:
MainWindow::buttonGroupClicked(int) in mainwindow.o
MainWindow::pointerGroupClicked(int) in mainwindow.o
MainWindow::itemInserted(DiagramItem*) in mainwindow.o
MainWindow::textInserted(QGraphicsTextItem&) in mainwindow.o
DiagramScene::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) in moc_diagramscene.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [DiagramScene.app/Contents/MacOS/DiagramScene] Error 1
18:41:52: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project DiagramScene (kit: Desktop)
When executing step 'Make'
有人以前看过这个或有什么建议吗?
提前致谢。 :)
最佳答案
链接器正在告诉您到底发生了什么。没有为列出的方法提供实现,即:
- DiagramItem::addArrow(箭头*)
- DiagramScene::setItemType(DiagramItem::DiagramType)
- DiagramScene::setTextColor(QColor const&)
- DiagramScene::setMode(DiagramScene::Mode)
只需编写这些方法的实现即可。如果您从帮助页面复制粘贴代码,则该示例可能不完整。
关于c++ - 编译 Qt 教程时出现 "undefined symbols for architecture"链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24894293/