QT错误的解决办法error:LNK2019:无法解析的外部符号

QT错误的解决办法error:LNK2019:无法解析的外部符号_第1张图片之前在QT(c++)中也遇到过这个问题,是因为类的静态成员只是在类中声明,没有在类外定义。

问题代码

我的类中的静态成员:

//运动控制器 单例模式
class MoveController : public QObject
{
    Q_OBJECT
    static QMutex mutex; //静态成员
    static QReadWriteLock RWLock_wheel1; //静态成员
    static QReadWriteLock RWLock_wheel2; //静态成员
    static SteerWheel* wheel1; //静态成员
    static SteerWheel* wheel2; //静态成员
    static MoveController* instance; //静态成员

public:
    ~MoveController(){
        SAFE_DELETE_ELEMENT(instance)
    }

解决

添加类外定义(在.cpp文件中):

//静态成员类外定义
QMutex MoveController::mutex;
QReadWriteLock MoveController::RWLock_wheel1;
QReadWriteLock MoveController::RWLock_wheel2;
SteerWheel* MoveController::wheel1 = NULL;
SteerWheel* MoveController::wheel2 = NULL;
MoveController* MoveController::instance = NULL;

编译通过

你可能感兴趣的:(Qt,c++,c++)