Open turbin opened 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版本还存在编译问题,有点不应该。
commit cf6a3ec2373bb89441d80a95c4ff2d7d53da10b5 是上面这个版本,为什么还有更高的版本,在下面 ?
下载2.1.0的源码包,在debian8上进行编译,提示在wizmainwindow.cpp 中 函数cleanOnQuit()调用 sleep,但是该符号未定义。 编译依赖Qt4的库. 后面自己动手修改了源码:
源码说明,因为Qt4中QThread的sleep方法是protect属性,所以重新定义了一个包裹对象Delay,将sleep方法暴露出来,然后通过inline 函数进行转定义。如果在其他平台上编译有问题,可以将这个内联函数用宏包裹起来。 问题解决,目前修改版本已经在我的debian8上运行起来了。 顺便说一下,对于release版本还存在编译问题,有点不应该。