【发布时间】:2016-07-23 19:06:02
【问题描述】:
在我的 Qt5.7 程序中,我正在尝试实施来自this 帖子(@vz0 答案)的解决方案。 我想从 Settings 类访问我的 MainWindow 类函数,但出现链接器错误。请告诉我,我做错了什么?
片段:
主要:
MainWindow w; //MainWindow declaration
a.setActivationWindow(&w);
w.setWindowFlags(Qt::MSWindowsFixedSizeDialogHint);
主窗口.h:
public:
static MainWindow* getInstance() { return &mainwindowInstance; }
void trayReload();
void tray();
private:
static MainWindow mainwindowInstance;
主窗口.cpp:
void MainWindow::trayReload()
{
delete trayIcon;
MainWindow::tray();
}
settings.cpp:
void Settings::bar()
{
MainWindow* mainWin = MainWindow::getInstance();
mainWin->trayReload(); //I want to make this working
}
编译这段代码后我得到了这个错误:
settings.obj:-1: error: LNK2001: unresolved external symbol "private: static class MainWindow MainWindow::mainwindowInstance" (?mainwindowInstance@MainWindow@@0V1@A)
在这种情况下我应该怎么做才能使其正常工作?
【问题讨论】:
-
请贴出真实代码。您发布的代码不会编译,并且使用您发布的代码不会出现链接器错误。
-
@IInspectable,如你所愿,我编辑了我的线程,现在这是真正的代码
-
这不是真正的代码。 It won't compile。更好的诊断using GCC 5.1.
-
抱歉,我忘记了示例代码中的一个静态变量,现在是 it's compiling,但我在 Qt 中仍然有一个链接器错误