c++ - 编译 Qt 教程时出现 "undefined symbols for architecture"链接器错误

标签 c++ macos qt

我在 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/

相关文章:

c++ - 显示实现最大利润的步骤

c++ - 如何从 HFONT 句柄获取 LOGFONT 结构?

c++ - Adding Pointer results in error to class 错误重载的成员函数未找到

node.js - 尽管 ~/.bashrc 和 ~/.bash_profile 中都存在 "nvm"变量,但在新命令行窗口/选项卡中无法识别 "NVM_DIR"命令

c++ - 如何将 QVariant 转换为原生 QtScriptValue(数字、字符串等)

php - in_array 的随机错误

java - 使用 Java Mac 获取 PID

python - 如何更改 Mac Snow Leopard 中的默认 Python 版本?

c++ - 隐藏的 QMainWindow : application crashes after QMessageBox is displayed 问题

android - Qt安卓编译报错