64位Matlab加载库
loadlibrary in 64-bit Matlab?
我正试图使用loadlibrary()将c++ API(用于SignalHound.com的BB60C无线电)加载到Matlab中,但它仅在32位Matlab (R2014a)中工作。这里的zip文件包含bb_api.h头文件,并且在各自的文件夹中都有32位和64位的bb_api.dll。要运行它,我将正确的.dll复制到带有bb_api.h的文件夹中,并调用loadlibrary('bb_api','bb_api.h')
。虽然这适用于32位版本,但当我在64位Matlab中使用64位.dll时,我得到以下错误:
Error using loadlibrary (line 422)
Building bb_api_thunk_pcwin64 failed. Compiler output is:
cl -I"C:Program FilesMATLABR2014aexterninclude" /W3 /nologo /D_CRT_SECURE_NO_DEPRECATE
/D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 -I"C:Program FilesMATLABR2014aexterninclude" -I"C:Program
FilesMATLABR2014asimulinkinclude" -I"C:UsersmimhofDocumentsGitHubSDRMatlab"
-I"C:UsersmimhofDocumentsGitHubSDRMatlab" "bb_api_thunk_pcwin64.c" -LD -Fe"bb_api_thunk_pcwin64.dll"
bb_api_thunk_pcwin64.c
C:UsersmimhofDocumentsGitHubSDRMatlabbb_api.h(202) : error C2061: syntax error : identifier 'bbOpenDevice'
C:UsersmimhofDocumentsGitHubSDRMatlabbb_api.h(202) : error C2059: syntax error : ';'
C:UsersmimhofDocumentsGitHubSDRMatlabbb_api.h(202) : error C2059: syntax error : 'type'
C:UsersmimhofDocumentsGitHubSDRMatlabbb_api.h(203) : error C2061: syntax error : identifier 'bbCloseDevice'
C:UsersmimhofDocumentsGitHubSDRMatlabbb_api.h(203) : error C2059: syntax error : ';'
C:UsersmimhofDocumentsGitHubSDRMatlabbb_api.h(203) : error C2059: syntax error : 'type'`
等对于API中可用的所有方法。什么会导致64位而不是32位发生此错误?
谢谢!
您谈论使用c++,但是您的文件被命名为.c
,它使用C语言规则触发编译。微软编译器对C语言的支持已经过时了,很可能这就是问题的根源。你可能想用c++来代替。
除此之外,请仔细查看发生错误的行,就像在您自己的代码中修复编译错误一样。
***_thunk.c文件是由matlab附带的perl脚本自动生成的,并且是许多类似错误的来源。
这个事实(自动生成的源代码在c中)是许多文档中看似奇怪的负载库限制和更多未文档的限制的来源。
当遇到非常类似的问题时,我的解决方案是劫持这个自动生成的文件,将其重命名为cpp并构建我自己的cpp版本。这需要一些黑客攻击,因为这个文件的寿命只有几分之一秒。
相关文章:
- std::原子加载和存储都需要吗
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 为什么加载SDF会导致Mobilizer创建闭环错误
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在C++中使用pybind11加载一个pickle python列表
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 当我尝试加载内核模块时,如何修复C++中的这个 malloc() 错误?
- 树莓上的 Libtorch 无法加载 pt 文件,但在 ubuntu 上工作
- Python ctypes:不会按预期加载 dll
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- 如何使用 "Matlab Data / Engine API for c++" 在 c++ 中加载 .mat
- 加载图像集 - Matlab-->C++ 翻译
- 将一个C++ DLL 加载到 matlab 中,该 matlab 调用另一个 DLL 中的函数
- 从c++调用MATLAB dyld:库未加载错误
- 64位Matlab加载库
- 如何在Matlab中训练一个模型,将其保存到磁盘,并在c++中加载程序
- 无法通过Java在MATLAB中加载DLL
- 如何使用犰狳加载 MATLAB 矩阵