dnf c++libandroid runtimee Lib...

由于项目需要,要把faster_rcnn的MATLAB代码封装成dll,中间自己也遇到了很多问题,最后终于完成任务,以下是自己的编译心得,写的有不明白的可以留言讨论。转载请注明出处!
1、首先修改MATLAB代码可以传入或传出参数,根据代码的具体要求进行修改你的MATLAB代码。&
2、其次确保MATLAB代码中的命令窗口可以使用deploytool命令,如果不能使用,请百度(很容易找到,不提供了)&
确保你的所有代码都在包含的路径中,在命令窗口输入deploytool命令,会提示
对话框,选择对话框中的Library Compiler选项,然后弹出对话框如下:
选择C++shared Library,点击‘+’选择入口文件,选择 runtime included package,下面运行程序所需的文件会自动添加(文件多的话 需要1秒钟),如果没有添加,你可以手动添加。检查添加没问题的话,直接点击右上角的Package按钮,等待即可。等编译完成后,会生成3个文件夹,选择for_redistribution_files_only文件夹,里面有你需要的lib与dll,在for_redistribution中,可以运行***MyAppInstaller_mcr.exe。&
以上是MATLAB编译dll部分。
在没有MATLAB的电脑上运行,需要***MATLAB Compiler Runtime 在***的MATLAB里可以找到相应的.exe文件,运行即可&
建立工程时,在属性页,vc++目录中,添加***MATLAB Compiler Runtime的lib及include,以及你的MATLAB代码编译的库即可。在连接器,输入,附加依赖项中,添加mclmcrrt.lib&
mclmcr.lib&
libeng.lib&
libmx.lib&
libmex.lib&
libmat.lib&
gpu.lib(需要gpu的话)&
及你MATLAB代码编译好的库即可。&
做c++接口函数时,主要需要注意的是所有的传入与传出参数类型都必须是mwArray类型,需要把你的参数类型需改为此类型。&
string file转换为mwArray:mwArray test_dir(file.c_str());&
mwArray threshold(25, 1, mxDOUBLE_CLASS);(25和1是矩阵的大小)&
throld = threshold(t1, 1);类似这样。&
需要添加的头文件#include “mclmcrrt.h” #include “mclmcr.h” #include “mclcppclass.h”&
以及MATLAB代码编译生成的.***件。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3159次
排名:千里之外
评论:17条
(1)(1)(1)(1)(2)(2)(1)(1)

参考资料

 

随机推荐