如何使用现有的MATLAB c++代码与外部库吗gydF4y2Ba

22日视图(30天)gydF4y2Ba
Zhibin邓gydF4y2Ba
Zhibin邓gydF4y2Ba 2023年4月20日gydF4y2Ba
评论道:gydF4y2Ba Zhibin邓gydF4y2Ba2023年4月25日gydF4y2Ba
我接到一个c++代码(在Unix和编制的gcc,写没问题)。代码使用boost库的头文件,我在我的Windows系统安装。主函数的代码需要输入两个文件名称,并编写解决方案一个默认的文本文件。gydF4y2Ba
现在,我想用它在MATLAB下Windows操作系统。我有搜索,发现也许墨西哥人可以实现这一目标。但是我有两个困难:gydF4y2Ba
  1. 主要功能是无效的回归类型。如何处理呢?gydF4y2Ba
  2. 它总是抱怨从boost库头文件不能被发现。gydF4y2Ba
谢谢你!gydF4y2Ba
部分代码:gydF4y2Ba
# includegydF4y2Ba <刺激/数字/ ublas / matrix_sparse.hpp >gydF4y2Ba
# includegydF4y2Ba <刺激/数字/ ublas / matrix_proxy.hpp >gydF4y2Ba
# includegydF4y2Ba <刺激/图表/ adjacency_list.hpp >gydF4y2Ba
# includegydF4y2Ba < iostream >gydF4y2Ba
# includegydF4y2Ba < iomanip >gydF4y2Ba
intgydF4y2Ba 主要gydF4y2Ba (gydF4y2Ba intgydF4y2Ba 命令行参数个数gydF4y2Ba ,gydF4y2Ba 字符gydF4y2Ba * *gydF4y2Ba argvgydF4y2Ba ){gydF4y2Ba
malloptgydF4y2Ba (M_MMAP_MAXgydF4y2Ba 0gydF4y2Ba );gydF4y2Ba
malloptgydF4y2Ba (M_TRIM_THRESHOLDgydF4y2Ba - - - - - -gydF4y2Ba 1gydF4y2Ba );gydF4y2Ba
.......gydF4y2Ba
……gydF4y2Ba
print_summarygydF4y2Ba (gydF4y2Ba 性病gydF4y2Ba ::gydF4y2Ba coutgydF4y2Ba ,gydF4y2Ba attained_measures_precision_timegydF4y2Ba );gydF4y2Ba
如果gydF4y2Ba (gydF4y2Ba out_base_namegydF4y2Ba 。gydF4y2Ba 比较gydF4y2Ba (gydF4y2Ba ”“gydF4y2Ba )gydF4y2Ba ! =gydF4y2Ba 0gydF4y2Ba ){gydF4y2Ba
性病gydF4y2Ba ::gydF4y2Ba 字符串gydF4y2Ba 省gydF4y2Ba (gydF4y2Ba out_base_namegydF4y2Ba +gydF4y2Ba “_paths.txt”gydF4y2Ba );gydF4y2Ba
性病gydF4y2Ba ::gydF4y2Ba ofstreamgydF4y2Ba res_filegydF4y2Ba (gydF4y2Ba 省gydF4y2Ba 。gydF4y2Ba c_strgydF4y2Ba ());gydF4y2Ba
save_path_flows_solutiongydF4y2Ba (gydF4y2Ba ggydF4y2Ba ,gydF4y2Ba 重心gydF4y2Ba ,gydF4y2Ba res_filegydF4y2Ba ,gydF4y2Ba paths_matrixgydF4y2Ba ,gydF4y2Ba DgydF4y2Ba ,gydF4y2Ba all_centroidsgydF4y2Ba ,gydF4y2Ba p_stargydF4y2Ba ,gydF4y2Ba edge_matrixgydF4y2Ba );gydF4y2Ba
res_filegydF4y2Ba 。gydF4y2Ba 关闭gydF4y2Ba ();gydF4y2Ba
}gydF4y2Ba
返回gydF4y2Ba 0gydF4y2Ba ;gydF4y2Ba
}gydF4y2Ba
2的评论gydF4y2Ba
Zhibin邓gydF4y2Ba
Zhibin邓gydF4y2Ba 2023年4月25日gydF4y2Ba
事实上,我有比这更多的问题。现在,我的计划是c++源代码编译为一个DLL文件,然后使用loadlibrary MATLAB函数接口的功能在我的c++代码。事实证明,我甚至不能实现这一目标。gydF4y2Ba
这是我的样品c++源文件“mylib.cpp”gydF4y2Ba
/ / mylib.cppgydF4y2Ba
# include“mylib.h”gydF4y2Ba
intgydF4y2Ba add (gydF4y2Ba intgydF4y2Ba 一个,gydF4y2Ba intgydF4y2Ba b)gydF4y2Ba
{gydF4y2Ba
返回gydF4y2Ba a + b;gydF4y2Ba
}gydF4y2Ba
intgydF4y2Ba 用(gydF4y2Ba intgydF4y2Ba 一个,gydF4y2Ba intgydF4y2Ba b)gydF4y2Ba
{gydF4y2Ba
返回gydF4y2Ba a * b;gydF4y2Ba
}gydF4y2Ba
头文件和“mylib.h”gydF4y2Ba
/ / mylib.hgydF4y2Ba
# ifdef __cplusplusgydF4y2Ba
走读生gydF4y2Ba “C”gydF4y2Ba {gydF4y2Ba
# endifgydF4y2Ba
intgydF4y2Ba add (gydF4y2Ba intgydF4y2Ba 一个,gydF4y2Ba intgydF4y2Ba b);gydF4y2Ba
intgydF4y2Ba 用(gydF4y2Ba intgydF4y2Ba 一个,gydF4y2Ba intgydF4y2Ba b);gydF4y2Ba
# ifdef __cplusplusgydF4y2Ba
}gydF4y2Ba
endifgydF4y2Ba
然后我complie CMD使用命令的代码窗口gydF4y2Ba
g++ - shared - o mylib。dll mylib.cppgydF4y2Ba
我成功地得到了“mylib。dll文件。在MATLAB 2022 b,我发出的命令gydF4y2Ba
loadlibrary (“mylib.dll”、“mylib.h”)gydF4y2Ba
错误信息显示:gydF4y2Ba
错误使用loadlibrarygydF4y2Ba
建筑mylib_thunk_pcwin64失败了。编译器的输出是:gydF4y2Ba
C: \ ProgramData \ MAT金宝appLAB \ 3 p.instrset SupportPackages \ R2022b \ \ mingw_w64。在strset\bin\gcc -I"D:\Program Files\MATLAB\R2022b\extern\include" -fexceptions -fno-omit-frame-pointer -I"C:\Users\Zhibin Deng\Documents\MATLAB\ASMO-ACG\ISMO"
我“C: \ \ Zhibin邓\用户文档\ MATLAB \ ASMO-ACG \ ISMO”“mylib_thunk_pcwin64。c mylib_thunk_pcwin64“o”。dll”- sharedgydF4y2Ba
collect2。exe:致命错误:CreateProcess:没有这样的文件或目录gydF4y2Ba
编译终止。gydF4y2Ba
请帮我解决这个问题吗?gydF4y2Ba

登录置评。gydF4y2Ba

答案(0)gydF4y2Ba

类别gydF4y2Ba

找到更多的在gydF4y2Ba开始使用MATLAB编译器SDKgydF4y2Ba在gydF4y2Ba帮助中心gydF4y2Ba和gydF4y2Ba文件交换gydF4y2Ba

下载188bet金宝搏


释放gydF4y2Ba

R2022agydF4y2Ba

社区寻宝gydF4y2Ba

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

开始狩猎!gydF4y2Ba