首先,确保安装了周立功can的驱动和开发需要的环境,官方说的需要什么c++2008,有些还要2005什么的,我不懂,直接去周立功官网把他全安了。
下面2个是官方的说明,controlCan是老版本的,没更新了,只是网上例程还有。
ZLGCAN二次开发说明/函数/例程下载
ControlCAN二次开发说明/例程下载
注意有x64,x86区别,现在的电脑基本是x64,当然有些以前的仪器可能是x86。
1、网上下下来的qt can项目,一般都会报
: -1: error: cannot find -lControlCAN 或者 zlgcan
理论上下载下来的代码加载库文件方法不会出错(我这默认了不出错),所以问题就是库文件不完整,完整的库是有下面这些东西的。(2种库不同嗷,只用其中一种就行)
网上的例程基本没有红色圈起来的文件,因为这两个文件,至少在我发文章的时候,2个文件是要放在build生成的文件夹里的,和.exe可执行文件放在一起,并不是和源代码放一堆的。所以我们要做的就是补全这两个东西,把他们和build生成的.exe文件放一堆。而且不要忘了debug要在debug文件下放,换成release的时候还要在release下也放一个。
却库的话,上面2个链接里面有官方最新的,下面也有,下下来一起,一起,一起替换掉,不是少那个添哪个,因为可能版本对不上也用不了,我就是换少了的,折腾好久没搞出来,最后一起换了才好的。
下面是2个开发库的链接,项目用的那个下载哪个:
ControlCAN二次开发库
zlgcan二次开发接口函数库(2024.4.16)
2、
正常上面的操作应该直接解决了缺库的问题。可能遇到其他问题:
(1)下面这个显示缺了zlgcan.dll,但还是建议换整个库,不建议直接加zlgcan.dll,因为版本不同也用不了。
(2)假如程序能运行起来,但是打不开设备
这种有两种可能:1、库文件不完整,缺少kerneldlls文件夹或者.lib文件可能报这个问题
2、驱动和库文件不匹配,因为网上的例子有的是好几年前的了,源代码里的库版本太老了。我发现有些没有kerneldlls文件夹,或者.dll文件放在源代码里,别人这么放可能那个时候是可以用的,但现在不行了,可能和驱动不匹配了。
解决方法:换库。
假如换库没有解决问题,就检查一下前置条件,比如环境,驱动什么的有没有弄好。
3、总结
跟库有关的错,在官网找一下最新的库文件替换掉。