混用KEYSIGHT-VISA,NI-VISA所引起的程序启动不
2019-10-08 本文已影响0人
ww4u
现象
- GUI程序在客户环境下启动不显示窗口,没有内容提示
- 看进程是活的,像是被什么给阻塞住了
- 程序依赖于QT库和VISA
- 首先检查QT库的正常加载
- 由于不方便拆分出组件 widget,core,gui,network
- 利用QT自带的例子来验证基本的gui库是否正常
- 修改安装目录下的qt库名称,如qt5core.dll,看能否提示加载失败
- 经过上面的操作判定QT库正常
- 检查VISA库
- 客户环境下安装了Keysight VISA和NI VISA的实现
-
初步估计这两个库是不兼容的
image.png
image.png - 两个版本的大小有区别,Keysight的小,可能是因为Keysight中的实现只是一个包装器,真正的实现在另外的地方
-
用depends打开查看符号表信息
image.png
结论
- NI-VISA和KEYSIGHT-VISA的实现不是二进制兼容的
- 直接进行替换混用会导致程序启动不正常