首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在64位Matlab中加载库?

在64位Matlab中加载库?
EN

Stack Overflow用户
提问于 2014-08-07 02:23:18
回答 2查看 1.7K关注 0票数 0

我正在尝试使用loadlibrary()将Matlab (用于SignalHound.com上的BB60C无线电)加载到Matlab中,但它只能在32位C++ (R2014a)中工作。压缩文件here包含bb_api.h头文件,并在各自的文件夹中同时包含32位和64位bb_api.dll。要运行它,我用bb_api.h将正确的.dll复制到文件夹中,然后调用loadlibrary('bb_api','bb_api.h')。虽然这适用于32位版本,但当我在64位Matlab中使用64位.dll时,我得到以下错误:

代码语言:javascript
复制
Error using loadlibrary (line 422)
Building bb_api_thunk_pcwin64 failed.  Compiler output is:
cl -I"C:\Program Files\MATLAB\R2014a\extern\include"  /W3  /nologo  /D_CRT_SECURE_NO_DEPRECATE
/D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0   -I"C:\Program Files\MATLAB\R2014a\extern\include" -I"C:\Program
Files\MATLAB\R2014a\simulink\include" -I"C:\Users\mimhof\Documents\GitHub\SDR\Matlab"
-I"C:\Users\mimhof\Documents\GitHub\SDR\Matlab" "bb_api_thunk_pcwin64.c" -LD -Fe"bb_api_thunk_pcwin64.dll"
bb_api_thunk_pcwin64.c
C:\Users\mimhof\Documents\GitHub\SDR\Matlab\bb_api.h(202) : error C2061: syntax error : identifier 'bbOpenDevice'
C:\Users\mimhof\Documents\GitHub\SDR\Matlab\bb_api.h(202) : error C2059: syntax error : ';'
C:\Users\mimhof\Documents\GitHub\SDR\Matlab\bb_api.h(202) : error C2059: syntax error : 'type'
C:\Users\mimhof\Documents\GitHub\SDR\Matlab\bb_api.h(203) : error C2061: syntax error : identifier 'bbCloseDevice'
C:\Users\mimhof\Documents\GitHub\SDR\Matlab\bb_api.h(203) : error C2059: syntax error : ';'
C:\Users\mimhof\Documents\GitHub\SDR\Matlab\bb_api.h(203) : error C2059: syntax error : 'type'`

对于API中所有可用的方法,依此类推。什么会导致此错误在64位而不是32位中发生?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-08-07 02:42:50

您谈到了使用C++,但是您的文件名为.c,这将触发使用C语言规则进行编译。Microsoft编译器的C支持非常过时,这很可能是问题的根源。您可能希望改用C++。

除此之外,仔细查看出现错误的行,就像在自己的代码中修复编译错误一样。

票数 0
EN

Stack Overflow用户

发布于 2016-07-16 03:31:34

***_thunk.c文件是由matlab附带的perl脚本自动生成的,并且是许多类似错误的来源。

这一事实(自动生成的thunk源代码在c中)是许多有记录的看似奇怪的loadlibrary limitations和更多未记录的more的来源。

当遇到非常类似的问题时,我的解决方案是劫持这个自动生成的文件,将其重命名为cpp,并构建我自己的cpp版本的thunk。这需要一些修改,因为这个文件的生命周期只有几分之一秒。Full details are here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25167455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档