WizTeam / WizQTClient

为知笔记跨平台客户端
Other
2.62k stars 811 forks source link

【已修复】在Debian8下编译2.1.0版本时报错,以及解决方案 #409

Open turbin opened 7 years ago

turbin commented 7 years ago

下载2.1.0的源码包,在debian8上进行编译,提示在wizmainwindow.cpp 中 函数cleanOnQuit()调用 sleep,但是该符号未定义。 编译依赖Qt4的库. 后面自己动手修改了源码:

cplusplus:
#include <QThread>

struct Delay : public QThread
{
  static void sleep(unsigned long second){QThread::sleep(second);}
};

static inline void sleep(unsigned long second){
    Delay::sleep(second);
}

源码说明,因为Qt4中QThread的sleep方法是protect属性,所以重新定义了一个包裹对象Delay,将sleep方法暴露出来,然后通过inline 函数进行转定义。如果在其他平台上编译有问题,可以将这个内联函数用宏包裹起来。 问题解决,目前修改版本已经在我的debian8上运行起来了。 顺便说一下,对于release版本还存在编译问题,有点不应该。

turbin commented 7 years ago

commit cf6a3ec2373bb89441d80a95c4ff2d7d53da10b5 是上面这个版本,为什么还有更高的版本,在下面 ?