0
点赞
收藏
分享

微信扫一扫

qt开发技巧与三个问题点


目录

​​qt技巧​​

​​问题一 error: C2143: 语法错误: 缺少“;”(在“*”的前面)​​

​​问题二 无法解析的外部符号 "public: virtual struct QMetaObject​​

​​问题三 缺少库文件SapClassBasic86.dll、SapClassBasic85.dll和SapClassBasic84.dll​​

开发技巧

右键 refactor 再rename,一键修改类名。

头文件里不放入第三库的依赖,在cpp文件里放入,并通过私有类的方式,引入第三库的类指针来使用。可以让头文件给别人使用的时候,别人不用依赖第三方库。

依赖的库放到代码外边,插件封装,工厂只有逻辑业务的代码。

工控机注意分区,让C盘扩大。

问题一 error: C2143: 语法错误: 缺少“;”(在“*”的前面)

qt开发技巧与三个问题点_开发语言

Qt 报错:error: C2143: 语法错误: 缺少“;”(在“*”的前面)_Qt

这是因为,如有2个头文件a.h和 b.h,A.h有#include “B.h”,而b.h也有#include"A.h",同时B.h头文件中有a类的对象(即有A a)等,这样造成

A.h与B.h之间无限循环引用,即会导致以上的错误。解决方法是在B.h头文件的类前声明一下A类即可(即class A;)。

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

Qt 报错:error: C2143: 语法错误: 缺少“;”(在“*”的前面)

​​Qt 报错:error: C2143: 语法错误: 缺少“;”(在“*”的前面)_mb5fe559d8b9ae4的技术博客_51CTO博客​​

问题二 无法解析的外部符号 "public: virtual struct QMetaObject

hcameradalsaline.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl WorkerThread::metaObject(void)const " (?metaObject@WorkerThread@@UEBAPEBUQMetaObject@@XZ)

加上下面这句就可以了

#include "debug/hcameradalsaline.moc"

问题三 缺少库文件SapClassBasic86.dll、SapClassBasic85.dll和SapClassBasic84.dll

Sapera_LT_8.30_SDK.exe在两台电脑上安装的结果文件不一致。

这是由于SDK版本未注意,不对应。

一台是:Sapera_LT_8.30_SDK.exe

另一台是:Sapera_LT_8.60_SDK.exe

起初我以为是i7和i9问题,弄错方向了。

电脑一:

qt开发技巧与三个问题点_qt_02

 

qt开发技巧与三个问题点_qt_03

电脑二:

缺少库文件SapClassBasic86.dll、SapClassBasic85.dll和SapClassBasic84.dll

qt开发技巧与三个问题点_#include_04

 

qt开发技巧与三个问题点_#include_05

举报

相关推荐

0 条评论