• Qt--- 一些常见问题处理(无法解析得外部符号,UI头文件找不到等)


    1.编译,出错,提示:

    mainwindowprivate.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl MainWindowPrivate::metaObject(void)const " (?metaObject@MainWindowPrivate@@UEBAPEBUQMetaObject@@XZ)

    从QObject继承了一个类:

    #ifndef MAINWINDOWPRIVATE_H
    #define MAINWINDOWPRIVATE_H
    
    #include "DockManager.h"
    
    class MainWindowPrivate : public QObject
    {
    Q_OBJECT
    public:
    MainWindowPrivate();
    virtual ~MainWindowPrivate();
    
    public:
    void initDockWidget(QWidget *widget);
    
    private:
    ads::CDockManager *DockManager;
    };
    
    #endif // MAINWINDOWPRIVATE_H


    编译,出错,提示:

    mainwindowprivate.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl MainWindowPrivate::metaObject(void)const " (?metaObject@MainWindowPrivate@@UEBAPEBUQMetaObject@@XZ)

    解决办法:

    编译出错是因为没有生成moc_mainwindowprivate.cpp文件造成的。

    如果新添加QObject派生类到您的项目,则必须再次运行qmake,即
    1、清理项目(非必须)
    2、运行qmake(必须)
    3、构建项目(必须)
    否则,如果在QObject继承的类上进行增量构建,那么您将拥有过时的moc文件,或者干脆没有moc文件。


    原文链接: https://blog.csdn.net/libaineu2004/article/details/108215844

    2.在UI设计界面不能通过添加槽函数来添加槽函数(。-  。)

     类似于上面这个报错。

    解决办法:

    .对应 cpp 中include的头文件可能为大写 #include "ui_Dlg_CSP.h",导致添加槽时,找不到对应头文件,要手动改为小写。

    Qt会根据 dlg_CSP.ui 自动生成一个ui_dlg_CSP.h,有时候改了UI后,没有自动重新生成,还是使用的旧的 .h。此时需要手动将旧的 .h删掉,然后构建。

    3.在UI设计界面不能通过添加槽函数来添加槽函数(。-  。)

    因为mainwindow.cpp和testui.cpp两个cpp中都包含了ui_mainwindow.h导致的。

    自动转到槽函数一定程度是看哪里包含了上面这个ui头文件的,有两处引入就不懂该在哪里添加头文件了,这时候去把想要加入槽函数以外地方的ui头文件注释掉,添加完槽函数再解开注释就行。

  • 相关阅读:
    【leetcode】416. Partition Equal Subset Sum
    【leetcode】893. Groups of Special-Equivalent Strings
    【leetcode】892. Surface Area of 3D Shapes
    【leetcode】883. Projection Area of 3D Shapes
    【leetcode】140. Word Break II
    【leetcode】126. Word Ladder II
    【leetcode】44. Wildcard Matching
    【leetcode】336. Palindrome Pairs
    【leetcode】354. Russian Doll Envelopes
    2017.12.22 英语面试手记
  • 原文地址:https://www.cnblogs.com/linxisuo/p/14823339.html
Copyright © 2020-2023  润新知