Mac编译QT程序出现Undefined symbols for architecture x86_64

在Mac编写日志服务类,

Logging_d.h内容如下

#pragma once
#include <QLoggingCategory>
Q_DECLARE_LOGGING_CATEGORY(hovering)
Q_DECLARE_LOGGING_CATEGORY(creation)
Q_DECLARE_LOGGING_CATEGORY(mouseevents)
Q_DECLARE_LOGGING_CATEGORY(state)
Q_DECLARE_LOGGING_CATEGORY(docking)
Q_DECLARE_LOGGING_CATEGORY(globalevents)
Q_DECLARE_LOGGING_CATEGORY(hiding)
Q_DECLARE_LOGGING_CATEGORY(closing)
Q_DECLARE_LOGGING_CATEGORY(overlay)
Q_DECLARE_LOGGING_CATEGORY(dropping)
Q_DECLARE_LOGGING_CATEGORY(restoring)
Q_DECLARE_LOGGING_CATEGORY(title)
Q_DECLARE_LOGGING_CATEGORY(closebutton)
Q_DECLARE_LOGGING_CATEGORY(sizing)
Q_DECLARE_LOGGING_CATEGORY(multisplittercreation)
Q_DECLARE_LOGGING_CATEGORY(addwidget)
Q_DECLARE_LOGGING_CATEGORY(anchors)
Q_DECLARE_LOGGING_CATEGORY(item)
Q_DECLARE_LOGGING_CATEGORY(placeholder)
Q_DECLARE_LOGGING_CATEGORY(toplevels)

Logging.cpp内容如下

#include "Logging_p.h"

Q_LOGGING_CATEGORY(toplevels, "logging.toplevels", QtWarningMsg)
Q_LOGGING_CATEGORY(creation, "logging.creation", QtWarningMsg)
Q_LOGGING_CATEGORY(hovering, "logging.hovering", QtWarningMsg)
Q_LOGGING_CATEGORY(mouseevents, "logging.mouseevents", QtWarningMsg)
Q_LOGGING_CATEGORY(state, "logging.state", QtWarningMsg)
Q_LOGGING_CATEGORY(docking, "logging.docking", QtWarningMsg)
Q_LOGGING_CATEGORY(hiding, "logging.hiding", QtWarningMsg)
Q_LOGGING_CATEGORY(closing, "logging.closing", QtWarningMsg)
Q_LOGGING_CATEGORY(dropping, "logging.dropping", QtWarningMsg)
Q_LOGGING_CATEGORY(sizing, "logging.multisplitter.sizing", QtWarningMsg)
Q_LOGGING_CATEGORY(addwidget, "logging.multisplitter.addwidget", QtWarningMsg)
Q_LOGGING_CATEGORY(placeholder, "logging.multisplitter.placeholder", QtWarningMsg)

构建项目时出现下面错误:

Undefined symbols for architecture x86_64:

"mouseevents()", referenced from:

DragController::eventFilter(QObject*, QEvent*) in DragController.o

"placeholder()", referenced from:

Frame::restoreToPreviousPosition() in Frame.o

"state()", referenced from:

StateNone::onEntry() in DragController.o

StateNone::handleMouseButtonPress(Draggable*, QPoint, QPoint) in DragController.o

StatePreDrag::onEntry() in DragController.o

StateDragging::onEntry() in DragController.o

StateDragging::handleMouseButtonRelease(QPoint) in DragController.o

StateDragging::handleMouseMove(QPoint) in DragController.o

DragController::dropAreaUnderCursor() const in DragController.o

...

"hiding()", referenced from:

Frame::onDockWidgetShown(DockWidgetBase*) in Frame.o

Frame::onDockWidgetHidden(DockWidgetBase*) in Frame.o

"sizing()", referenced from:

LayoutWidget::updateSizeConstraints() in LayoutWidget.o

"closing()", referenced from:

Frame::onCloseEvent(QCloseEvent*) in Frame.o

"docking()", referenced from:

DropArea::drop(QWidgetAdapter*, Location, Frame*) in DropArea.o

Frame::onDockWidgetCountChanged() in Frame.o

"creation()", referenced from:

DragController::DragController(QObject*) in DragController.o

DropArea::DropArea(QWidgetAdapter*, bool) in DropArea.o

DropArea::~DropArea() in DropArea.o

Frame::scheduleDeleteLater() in Frame.o

"dropping()", referenced from:

DropArea::drop(WindowBeingDragged*, QPoint) in DropArea.o

"hovering()", referenced from:

DropArea::drop(WindowBeingDragged*, QPoint) in DropArea.o

DropArea::drop(WindowBeingDragged*, Frame*, DropLocation) in DropArea.o

TitleBar::makeWindow() in TitleBar.o

WindowBeingDragged::grabMouse(bool) in WindowBeingDragged.o

"addwidget()", referenced from:

MainWindowBase::addDockWidgetAsTab(DockWidgetBase*) in MainWindowBase.o

MultiSplitter::addMultiSplitter(MultiSplitter*, Location, Frame*, InitialOption) in MultiSplitter.o

TabWidget::insertDockWidget(DockWidgetBase*, int) in TabWidget.o

"toplevels()", referenced from:

DragController::qtTopLevelUnderCursor() const in DragController.o

QQuickItem* qtTopLevelUnderCursor_impl<FloatingWindow*>(QPoint, QVector<QWindow*> const&, FloatingWindow*) in DragController.o

QQuickItem* qtTopLevelUnderCursor_impl<QQuickItem*>(QPoint, QVector<QWindow*> const&, QQuickItem*) in DragController.o

解决方式:

     修改源文件名,改成与头文件一致,不能用Logging。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值