要使用QTest::qSleep() (程序中应完整写出)头文件中加 <QTest> pro文件中加 CONFIG += qtestlib
还有其它,比如:
QT+=testlib
QT+=multimedia
连接库的加入,比如:
LIBS += -lws2_32
等等,用到的时候自已找吧。
如出现这个错误:you can' t do that without a process to debug
则可能是因为你的程序缺少相应的*.dll,查询缺少相应库的方法为在debug文件中运行*.exe会有相应的提示。
Q_UNUSED()不能使用:
#if defined(Q_CC_INTEL) && !defined(Q_OS_WIN) || defined(Q_CC_RVCT)
template <typename T>
inline void qUnused(T &x) { (void)x; }
# define Q_UNUSED(x) qUnused(x);
#else
# define Q_UNUSED(x) (void)x;
#endif
有的*.dll文件在编译的时候要用到,在*.exe文件执行时也要用到,所以在编译的地方要有*.dll文件,在*.exe文件的地方也要有*.dll文件,不然的话,运行一下就没了,没有任何结果,也可以在PRO文件中进行相应的设置。
ld returned 1 exit status 问题可能是类成员函数定义后,但是在*.cpp文件中未实现(有定义,无实现)。
当出现:make: *** No rule to make target '*.o', needed by `*.so'. Stop.
当出现:expected class-name before '{' token
因为父类中打开了子类的头文件,而此时父类的声明还未执行,导致子类继承不到父类出错
QT环境下出现这个:/usr/bin/ld: cannot find -ldes,可能是因为/usr/lib下没有libdes.a这个库文件。
定义析构函数后记得要实现,不然的话:undefined reference to 'vtable for '
定义析构函数后记得,实现。。。。。不然:undefined reference to 'vtable for '
三个头文件如果出现头尾相包含头文件,可以在其中一个头文件中不包含需要的头文件,只是前身声明,而在CPP文件中引入所需要的头文件,这样就行。
可能的原因是文件的路径没有设置正确(路径不正确)。
window 下QT命令:qmake mingw32-make
每行输入10个数据
cout << setw(2) << i << *(!(i % 10) ? "\n\r" : " ");
注意:QT所使用的工程,目录树中不能出现汉字,空格等,不然编译就会出现cannot find file main.pro
别把这两个写错了。。。在程序里把QMessages::warning写成了QMessages::Warning(大小写问题)
window下QT命令: qmake mingw32-make
在用SingleApplication.h和libSingleApplication.a的时候一定要加上QT += network切记
EXTERN关键字:
比如在test.h中定义:
class Test
{
};
extern Test* pTest;
在main.cpp中调用的话必须先初始化:
Test* pTest = NULL;
后才能引用pTest;
iso c++ forbids declaration of 'XXXX' with no type
csdn
两个头文件相互包含了,所以。。。。。
QString().sprintf("%04d-%02d-%02d %02d:%02d:%02d", time.m_iYear, time.m_iMonth, time.m_iDay, time.m_iHour, time.m_iMinute, time.m_iSecond);