QT5初始化器但未实现

时间:2016-06-28 13:10:13

标签: c++ qt

你好我读了所有其他的问题,但是在我的脑海里没有被清除,拜托,对不起,如果是重复的问题,但我没有办法解决这个问题。

我在使用G ++ / GCC的Ubuntu机器上使用QT 5。 所以,我正在编译,我得到这个错误:

src/rolebit.cpp:279:26: error: variable 'startWindowImpl mainWin' has initializer but incomplete type
  startWindowImpl mainWin(myConfig,myLog);

所以,从rolebit.cpp文件我有这个实现:

#ifdef QML_CLIENT
//START THE QML SWITCH HERE
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <QApplication>
#include <boost/shared_ptr.hpp>
#include "configfile.h"
#include "qmlwrapper.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    boost::shared_ptr<ConfigFile> myConfig;
    myConfig.reset(new ConfigFile(argv[0], false));

    QmlWrapper myQml(myConfig);
    return app.exec();
}

但在此之后,我有这样的话:

#else
// START OF OLD QT-WIDGETS GUI SECTION


#include <boost/asio.hpp>
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <qapplication.h>

#if QT_VERSION >= 0x050000
#include <QtWidgets>
#endif
#include <QtGui>
#include <QtCore>

#ifdef __APPLE__
#if QT_VERSION < 0x050000
#include <QMacStyle>
#endif
#endif

#include <curl/curl.h>

#include "session.h"
#include "startwindowimpl.h"
#include "configfile.h"
#include "log.h"
#include "startsplash.h"
#include "game_defs.h"
#include <net/socket_startup.h>
#include <third_party/qtsingleapplication/qtsingleapplication.h>

#ifdef _MSC_VER
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>

#define ENABLE_LEAK_CHECK() \
{ \
    int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG); \
    tmpFlag |= _CRTDBG_LEAK_CHECK_DF; \
    _CrtSetDbgFlag(tmpFlag); \
    }
#endif
#endif

#ifndef ENABLE_LEAK_CHECK
#define ENABLE_LEAK_CHECK()
#endif

我遇到的问题是:

startWindowImpl mainWin(myConfig,myLog);

那么,我需要做些什么呢?

提前谢谢

1 个答案:

答案 0 :(得分:0)

看起来{class 1}}类已在“startwindowimpl.h”中完全声明,但在代码的第一部分中没有行startWindowImpl。因此,当#include "startwindowimpl.h"QML_CLIENT时,不会包含此标头,这会使类#define的完整声明未知。