0

我已将我的一个旧项目(在 VS-2010 中构建)中的头文件和 cpp 文件复制到新项目中(在 QT5.1 中开发它)并遇到了这个奇怪的错误

1>Message_list.obj : error LNK2019: unresolved external symbol "public: bool __thiscall Message_list::NoMessageTime::operator()(struct Message const &,struct Message const &)const " (??RNoMessageTime@Message_list@@QBE_NABUMessage@@0@Z) referenced in function "bool __cdecl std::_Debug_lt_pred<class Message_list::NoMessageTime,struct Message,struct Message>(class Message_list::NoMessageTime,struct Message &,struct Message const &,wchar_t const *,unsigned int)" (??$_Debug_lt_pred@VNoMessageTime@Message_list@@UMessage@@U3@@std@@YA_NVNoMessageTime@Message_list@@AAUMessage@@ABU3@PB_WI@Z)

我不知道如何解决它。

在我的头文件 Message_list.h

#include <set>
#include <QSTRING>
#include "Message.h"
class Message_list  
{

  class NoMessageTime
  {
    public:

        bool operator ()( const Message& left, const Message& right ) const;
    };


    typedef std::multiset<Message, NoMessageTime> MessageSet;

public:
    void add( const Message& message );


private:
    /** Inserts an item into the correct place in the list
      */
    void Message_list::insert_item( const Message& message );


    MainWindow* dialog_;
    MessageSet  messages_;
};

消息列表.cpp

void Message_list::addd( const Message& message )
{

QMutex mutex;
mutex.lock();
// Do something here

messages_.insert( message ); // error comes here 
mutex.unlock();

}

在 vs-2010 中成功编译的相同文件..

4

0 回答 0