zoukankan      html  css  js  c++  java
  • escu问题及解决

    **************************************************************

    Qt 出现“undefined reference to `vtable for”原因总结

    -----------------------------------------------------------------

    出错原因是在定义类的时候为了能使用signals和slot,在类定义的后面加了Q_OBJECT引起。 因为Q_OBJECT是一个宏,在不同的类中展开是不同的代码。

    错误正是因为Makefile里没有将moc_XXX.cpp加入编译引起。

    Makefile背后的原因是qmake,因为Qt的编译系统是通过qmake将.pro 文件转换成Makefile文件。当qmake扫描.h代码时发现有Q_OBJECT这样字眼的代码时,会将一个用moc生成moc_xxx.cpp代码 的依赖关系写到Makefile里。如果扫描时没有找到Q_OBJECT就不会生成额外的moc_xxx.cpp这样的文件。

    出现最初一幕的原因是在执行qmake的时候.h代码里并没有O_OBJECT这样的代码。而执行make的时候.h里已经有Q_OBJECT了,解决的方法就是重新执行qmake,然后执行make.

    高涛实际解决办法:
    清理项目;
    删除掉makefile文件。

    **************************************************************

    使用ftp的问题

    -----------------------------------------------------------------

    从服务器下载升级文件时,要求使用进度条功能,正好ftp提供了相应功能,对应的函数为S_egetProgressVal。
    测试了下,大概可以用,该函数会不断地被ftp功能调用,并且会传回进度值。
    但是,仔细测试后,发现:在下载完成后S_egetProgressVal才会被调用。
    经检查,原因为,我在使用ftp_get后,通过一个while循环来判断是否下载完成了(通过变量g_iFTPSendLogFileResult),
    而这样做阻塞了该线程,导致S_egetProgressVal不能被及时调用。
    修改为:执行ftp_get后,如果下载完成,在FtprevalueReport函数中可以得到结果,这是以异步的方式得到结果的,因此不会阻塞。

    结论:ftp_get后最好不要由其他内容

    **************************************************************

    使用shell执行命令的问题

    -----------------------------------------------------------------

    想执行的命令为:

    ll

    错误提示为未找到命令。

    原因:

    ll是ls -l 的 别名,似乎不能用别名。

  • 相关阅读:
    linux kill命令以及 信号
    rhel7 系统服务——unit(单元)
    redis集群在线迁移
    二、主目录 Makefile 分析(3)
    二、主目录 Makefile 分析(2)
    二、主目录 Makefile 分析(1)
    一、文档目录分析
    Linux下解压缩
    设备树
    轮询
  • 原文地址:https://www.cnblogs.com/gaotaozhaolei/p/8490242.html
Copyright © 2011-2022 走看看