访问C API(没有从c++类库)从命令行或脚本

9的观点(30天)
我有一个c++建库在ubuntu中暴露C api。相关头文件定义的api没有使用“走读生C”。头文件还包括其他headerfiles其他包(特征)。
  • 似乎不能用loadlibrary。我试着库名headerfile-name,得到:
> loadlibrary libfile。所以file.h
失败的输入文件进行预处理。
输出从预处理程序是:文件。h: 9:警告:# pragma主文件
#杂注一次
^ ~ ~ ~
文件。h: 7:10:致命错误:特征/核心:没有这样的文件或目录
#包括<特征/核心>
^ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
编译终止。
  • 我需要使用其他机制吗?(相当新的matlab)
4评论
BRSC用户
BRSC用户 2020年4月5日
编辑:BRSC用户 2020年4月6日
编译器错误当我添加包括路径(我等效)额外的头位置与墨西哥人命令:
文件包括从/usr/include/c + + / 8 / cmath: 42岁
从/地方/ eigen-git-mirror /特征/ src /核心/ util / Macros.h: 586年,
从/地方/ eigen-git-mirror /特征/核心:19日
从/地方/ src / base5 /墨西哥人/ mx-wrapper.c: 3:
/ cpp_type_traits /usr/include/c + + / 8位。h: 67:8:错误:字符串常量之前预期的标识符或“(”
外来的“c++”{
^ ~ ~ ~
/ memoryfwd /usr/include/c + + / 8位。h: 50:1:错误:未知类型名称的命名空间
名称空间性病_GLIBCXX_VISIBILITY(默认)
^ ~ ~ ~ ~ ~ ~ ~ ~
这可能是问题与6.3.0墨西哥人只支持。金宝app我已经安装了g++ 8.3.0。
特征头不受名称改编,如果你参照这些“原始c++头文件”。这是否意味着这些数据结构(例如,Vector3d Affine3d等)从特征/核心需要转化成指针和使用原始/ matlab数据(如。 matlab::数据::数组 , matlab:: data::结构体 在MX文件等)?
根据mathworks,如果你有一个c++共享库出口功能,可以从另一个应用程序调用,然后您可以使用这些类和函数直接在MATLAB之间来回传递数据的MATLAB和C + +。
文档有点不清楚(对我来说)。因此,问题。这是否需要:
  • mexFunction()从C矩阵等C API优先接口API ?这是一个老的接口,提出了C或C和c++的组合。
  • 或使用c++ API墨西哥人(和实施操作符())来访问C API方便吗?不知道这意味着只有c++对象(与经营者()访问器)?
  • 有可能/推荐使用loadLibrary框架加载预先构建的shlib c++ 14 ?

登录置评。

答案(0)

类别

找到更多的在部署到使用MATLAB c++应用程序数据API帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的