我想用Ubuntu PC控制一台Keithley 2230。
但是我得到一个编译错误,命令是gcc 2230.c -o 2230 -lvisa
:
/tmp/ccbIYaRH.o: In function `main':
2230.c:(.text+0x289): undefined reference to `viScanf'
2230.c:(.text+0x2f5): undefined reference to `viScanf'
/tmp/ccbIYaRH.o: In function `SendSCPI':
2230.c:(.text+0x47c): undefined reference to `viBufRead'
collect2: error: ld returned 1 exit status
我检查文件visa.h
,这两个函数viScanf
和viBufRead
,但它们不在libvisa.a
或libvisa.so
中nm
命令。
这个问题的原因是什么?如何使用Ubuntu系统控制Keithley 2230?
更新 我将viScanf和viBufRead更改为viRead,之后可以编译通过。点击这里查看代码:mycode_link,但是在openPort()函数中,我找不到资源,意思是在这一行之后:
ErrorStatus = viFindRsrc(defaultRM, "?*", &fList, &numInstrs, desc);
numInstrs为0,你对这个问题有什么想法吗?谢谢!