开发技巧
右键 refactor 再rename,一键修改类名。
头文件里不放入第三库的依赖,在cpp文件里放入,并通过私有类的方式,引入第三库的类指针来使用。可以让头文件给别人使用的时候,别人不用依赖第三方库。
依赖的库放到代码外边,插件封装,工厂只有逻辑业务的代码。
工控机注意分区,让C盘扩大。
问题一 error: C2143: 语法错误: 缺少“;”(在“*”的前面)
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问题,弄错方向了。
电脑一:
电脑二:
缺少库文件SapClassBasic86.dll、SapClassBasic85.dll和SapClassBasic84.dll