我怎样才能从mingw64编译器编译和链接静态库在windows系统上使用墨西哥人命令后缀的文件作为“。”?

46个视图(30天)
系统 :Windows10 21 h2
Matlab版本: R2022a
依从者: mingw64
编译错误: “libopencv_world440.dll.a的编译器会报告错误。无法找到自由”
问题描述:
问题是:我想用 墨西哥人 叫OpenCV c++程序在matlab环境中,我已经通过编译OpenCV计算机视觉库在windows上使用mingw64编译器作为一个完整的二进制文件(即得到“libopencv_world440。dll。一个“静态库和“libopencv_world440。动态库dll”)。现在作为一个额外的我也写了 墨西哥人的c++程序 最后希望通过墨西哥人命令编译它,的 “- l”参数命令来指定被链接的库的名称 ,它根据官方参数描述的形式 “-llibname” 后缀,“但问题是,我的图书馆上面名字作为后缀“。”,写成“-lopencv_world440.dll。“不编译在这种形式(libopencv_world440.dll.a编译报告错误。lib文件无法找到),“我能做些什么来联系。“库文件正确吗?你的回答将会非常感谢!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -中国- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
如何在windows系统上使用墨西哥人命令编译链接来自mingw64编译器已经编译好的后缀为“。”静态库文件吗?
问题是这样的:我想在matlab环境中使用墨西哥人调用OpenCV c++程序,目前我已经在windows系统上通过mingw64编译器对OpenCV计算机视觉库进行了完整编译为二进制文件(即得到“libopencv_world440.dll.a”静态库和“libopencv_world440。dll”动态库)。现在额外我也写好了墨西哥人c++程序,最后想通过墨西哥人命令来编译,这其中有“- l”参数指令来指定需要链接的库名字,根据官方参数说明,形式为“-llibname”,后缀“lib”会被自动加上去,但问题是我上面的库名字后缀是“。”,写成“-lopencv_world440.dll.a”这种形式编译不通过(编译报错无法找到libopencv_world440.dll.a.lib文件),请问该如何做才能正确把“。”的库文件链接起的来吗?

接受的答案

崔
2022年9月19日
编辑: 2022年9月19日
当“libopencv_world440.dll。“复制到matlab的当前工作目录,然后我能够通过墨西哥人文件并运行成功不指定“- l”,参考示例如下:
%注意:第一次使用“墨西哥人设置”,选择你的c / c++编译器
清晰;
% % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% %得到这台计算机的体系结构
is_64bit = strcmp(电脑,“MACI64”)| | strcmp(电脑,“GLNXA64”)| | strcmp(电脑,“PCWIN64”);
% % - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% %编译器的配置
%你根据自己的需要修改这个配置路径OpenCV
%注意:你的VS / MinGW64 OpenCV平台一定要匹配Matlab 64位的!
out_dir =“。/”;%当前目录
CPPFLAGS =' - g id: \ opencv_4_4_0 \ MinGW64_v8_OpenCV4_4_Contrib_install \包括id: \ opencv_4_4_0 \ MinGW64_v8_OpenCV4_4_Contrib_install \ \ opencv2 '包括;%你的OpenCV”包括“路径
LDFLAGS =ld: \ opencv_4_4_0 \ MinGW64_v8_OpenCV4_4_Contrib_install \ x64 \ mingw \ lib”;%用OpenCV发布版本的“自由”路径
%填词=“-lopencv_world440”;% msvc发布版本的自由,无后缀,系统会自动加上去
填词=“libopencv_world440.dll.a”;% mingw64编译器。库文件,无“- l”参数
如果is_64bit
CPPFLAGS = [CPPFLAGS“-largeArrayDims”];
结束
% %添加你的文件!
compile_files = [
%的列表需要编译你的代码文件
' D: \ vs_files \ project1 \ project1 \ findCheckerBoarderCorners.cpp”
];
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% %编译…
str = compile_files;
流(“编译:% s \ n”str);
str = [str“-outdir”out_dir CPPFLAGS LDFLAGS填词);
args = regexp (str,“\ s +”,“分裂”);
墨西哥人(args {:});
流(“恭喜,编译成功! ! ! \ n”);

更多的答案(0)

下载188bet金宝搏

社区寻宝

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

开始狩猎!