Matlab调用NI-DAQmx出现“错误使用 mex XXX skipping incompatible XXX searching for -lNIDAQmx“

报错结果如上图,是在使用mex指令调用NIDAQmx.h头文件处出错,如果出现的是找不到指令或者指令未定义的情况,请查看一下自己程序的工作目录中是否放置有所需要的头文件和源文件,其次请检查自己的C程序代码中是否以void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])作为主函数。

如果上述两处均没有问题,那么问题出在库目录的位数上。查看自己电脑的位数可以右键单击左下角微软微标选中“系统”选项,可直接查看电脑位数。

 由于我的电脑是64位机,推测上述引用库目录文件是32位文件,因此matlab不能使用,才会在默认目录下去寻找相应的文件,发生报错。查看自己电脑的64位库目录NIDAQmx.lib文件的方法可以点击这里,简言之,就是在Program Files (x86)\NationalInstruments\Shared\

ExternalCompilerSupport\C\lib64\msvc 目录下有一个NIDAQmx.lib文件,将之复制到你当前目录或者记录下这个文件的当前位置都是可以的。

然后,在matlab命令行中输入如下指令:

mex filename.cpp '-LC:\Users\UserName\XXXX\' -lNIDAQmx.lib

请注意,此处的调用的全部库目录,包括你自己写的库都应该采用

'-L文件夹路径(一定以\结尾)' '-l文件全名'

的格式,不然上述skipping错误将会继续发生。

要是在上述目录中没有找到NIDAQmx.lib,应该是安装NI-DAQmx软件的时候,没有勾选推荐的C语言支持,请回到NI Package Manager中重新安装NI-DAQmx,安装时格外留意勾选推荐内容。

参考文献:

http://t.csdn.cn/xMv7x

64位DAQmx C Lib文件在哪里可以找到? - National Instruments (ni.com)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值