gpt4 book ai didi

Qt 的 moc 导致 "undefined reference to:"错误

转载 作者:行者123 更新时间:2023-12-04 13:23:13 24 4
gpt4 key购买 nike

我正在 Qt 中开发一个简单的绘图小部件(以下所有内容都在一个类中)。在头文件中,我已经定义了

private:
QPointF translateToCanvas (QPointF input);

在我定义的 CPP 文件中

QPointF translateToCanvas (QPointF input) {
return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y);
}

代码中的其他地方,我称之为

QPointF newPoint = translateToCanvas(anotherPoint);

每当我编译时,它都会给我一个错误“未定义的对 `MyClass::translateToCanvas(QPointF)' 的引用”,这发生在 moc 生成的东西中,而不是我的文字代码中。

在 Qt 中可能导致此错误的原因是什么? (我在 Qt 4.5 中使用 Qt Creator。)

最佳答案

这与Qt无关。

QPointF translateToCanvas (QPointF input) {
return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y);
}

定义了一个名为 translateToCanvas 的独立函数,它与你在类中声明的私有(private)方法无关,只是碰巧有相同的名称。你想要的

QPointF MyClass::translateToCanvas (QPointF input) {
return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y);
}

关于Qt 的 moc 导致 "undefined reference to:"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1148925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com