无法解析 MEX 函数 Eclipse
mex functions could not be resolved eclipse
我正在尝试在 eclipse(linux)上编译 c++ 代码(其中包含 mex 函数,如:mxGetNumberOfElement、mxCreateDoubleScalar、mxArray 等)。
我按照此说明配置了日食。
但不幸的是,我得到了这个错误:
function 'mxGetNumberOfElements' could not be resolved.
function 'mxGetNumberOfElements' could not be resolved.
function 'mxCreateDoubleScalar' could not be resolved.
....
我错过了什么?
如何配置 Eclipse 以识别此功能?
我的代码与 Matlab 示例中的代码非常相似:
arrayProduct.c
位于本网站的"创建 C 源 MEX 文件"下。
我已经在Windows上的Visual Studio中编译了我的代码,并且它起作用了,但我需要在 Linux 上工作。
感谢您的帮助。
以下说明是此博客条目的冗长版本。
假设您的 Matlab 安装驻留在 MATLABPATH
中,以下步骤使您能够在 Eclipse 中编译 MEX 函数:
- 转到"项目设置">"C/C++ 生成">"设置">"生成项目"。
- 从下拉菜单"工件类型"中,选择"共享库"。
- 在项目名称文本字段中输入 MEX 函数的所需名称。
- 作为项目扩展,请在相应的文本字段中选择"
mexa64
"。 - 选择输出前缀为空。
- 转到"项目设置">"C/C++ 生成">"设置">"工具设置"。
- 在左侧导航窗格中,转到 GCC C 编译器>包含。
- 在右侧,有一个(大概是空的)包含路径列表,单击添加...符号(带有绿色"+"的纸张)。
- 将打开"添加目录路径"对话框。单击文件系统..按钮,然后转到目录
MATLABPATH/extern/include
。单击"确定"。 - 在左侧导航窗格中,转到 GCC C 链接器>库。
- 在右侧,有一个库列表。添加一个。
- 将打开输入值对话框。输入
mex
。 - 添加另一个名为
mat
的库... - 。最后一个名叫
mx
. - 在右侧,还有一个图书馆搜索路径列表。添加一个。
- 将打开"添加目录路径"对话框。单击文件系统..按钮,然后转到目录
MATLABPATH/bin/glnxa64
。单击"确定"。 - 在左侧导航窗格中,转到 GCC C 编译器>杂项。
- 激活选项位置无关代码 (-fPIC)。
做。您现在可以在 Eclipse 中编译 MEX 文件。以下代码应编译为返回实数标量双精度输入值根的 MEX 函数:
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) {
nlhs = 1;
mxArray* arg[1];
*arg = mxCreateDoubleMatrix(1,1,mxREAL);
mxSetPr(*arg,mxGetPr(*prhs));
mexCallMATLAB(1,plhs,1,arg,"sqrt");
}
编译的代码,即 MEX 函数,可以在 Eclipse 的工作区中找到:
/home/your_initials/workspace/project_name/Debug/name_of_mex_function
.
使用的版本:
Eclipse(Luna Service Release 2 (4.4.2))
Linux: 4.3.3-2-ARCH (64位)
矩阵: R2015a
GCC:5.3.0
相关文章:
- Eclipse C++ 字符串作为函数参数
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- 不正确的输出和变量未用Eclipse CDT初始化构造函数
- 默认构造函数 Eclipse 项目中的用户输入
- 查看对象中的函数 [Eclipse C++]
- Eclipse "implement method"函数不适用于模板类
- 无法解析函数'strlen' - Eclipse cpp
- 尝试在 eclipse CDT 中提取函数时"Too many declarations in selection"错误消息
- 选择C++主函数在eclipse中构建
- androidndk和eclipse给出了关于c++getline()函数的不同错误信息
- C++字符串拆分函数Eclipse中出现错误,但已编译
- 无法解析 MEX 函数 Eclipse
- 无法解析 Eclipse C/C 函数'printf'
- Mac Eclipse 无法解析 NDK 中的C++ lib 函数
- 在Eclipse中构建C/C++项目时出错:未定义的引用函数
- Eclipse——如何查找已定义函数的使用位置
- 枚举作为构造函数c++eclipse的输入
- Eclipse CDT - 编辑器无法识别静态库中包含的函数
- 让Eclipse自动实现纯虚拟函数的任何方法
- 使eclipse CDT忽略某些函数上的错误