利用C++调用matlab生成exe缺少dll

qq_42694360 2020-03-07 08:51:34
按照网上的教程运行库改了,mfc使用改了,debug换成了release,电脑系统是w10,matlab2018a,VS2013运行平台是x64,自己电脑上用VS调用matlab可以成功,但是生成的release版本的exe文件不能在其他无VS的电脑上运行,缺少各种dll,求大神解答
...全文
825 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
一彤 2020-03-11
  • 打赏
  • 举报
回复
奥利给
jacksonfan 2020-03-10
  • 打赏
  • 举报
回复
用vs自带的dependse看看有哪些dll
qq_42694360 2020-03-10
  • 打赏
  • 举报
回复
引用 5 楼 一彤的回复:
[quote=引用 4 楼 qq_42694360 的回复:] [quote=引用 3 楼 一彤的回复:][quote=引用 2 楼 qq_42694360 的回复:] [quote=引用 1 楼 zgl7903的回复:]MFC 可以编译环境中修改为静态库中使用MFC,重新编译链接 Matlab如果有静态库,可以选择静态库连接,否则可能就得安装相应的支持库了 可以试着把报缺少的库,从开发电脑上逐个复制到App目录下试试看
我生成的exe应该包含所需要的dll的吧,一个一个的粘我昨天粘了二十多个,mfc那个已经改了,没用,我把缺失的粘完后exe在别的电脑打开闪退,但是我自己程序中已经包含system(“pause”)了[/quote] 用命令行窗口运行程序就不会闪退,就可以看到输出什么信息了[/quote] 你好,我这个问题应该是解决了,我让我同学电脑上环境变量path那里添加matlab路径,不缺少dll,但是运行exe的时候matlab没有被调用(我设置了if语句),但是我自己运作的时候是可以的,别人电脑就不行(没有VS)[/quote] matlab路径?还有一些文件配置?可以输出日志,看看卡在哪一步[/quote] 你好,你说的路径是path里的路径吗,我让我同学把matlab有关路径都放前面了,文件配置是VS里的配置吗,我自己调用的时候把库目录依赖附加项之类配了有关matlab内容了,输出日志是什么意思?
一彤 2020-03-10
  • 打赏
  • 举报
回复
引用 4 楼 qq_42694360 的回复:
[quote=引用 3 楼 一彤的回复:][quote=引用 2 楼 qq_42694360 的回复:] [quote=引用 1 楼 zgl7903的回复:]MFC 可以编译环境中修改为静态库中使用MFC,重新编译链接 Matlab如果有静态库,可以选择静态库连接,否则可能就得安装相应的支持库了 可以试着把报缺少的库,从开发电脑上逐个复制到App目录下试试看
我生成的exe应该包含所需要的dll的吧,一个一个的粘我昨天粘了二十多个,mfc那个已经改了,没用,我把缺失的粘完后exe在别的电脑打开闪退,但是我自己程序中已经包含system(“pause”)了[/quote] 用命令行窗口运行程序就不会闪退,就可以看到输出什么信息了[/quote] 你好,我这个问题应该是解决了,我让我同学电脑上环境变量path那里添加matlab路径,不缺少dll,但是运行exe的时候matlab没有被调用(我设置了if语句),但是我自己运作的时候是可以的,别人电脑就不行(没有VS)[/quote] matlab路径?还有一些文件配置?可以输出日志,看看卡在哪一步
qq_42694360 2020-03-10
  • 打赏
  • 举报
回复
引用 3 楼 一彤的回复:
[quote=引用 2 楼 qq_42694360 的回复:] [quote=引用 1 楼 zgl7903的回复:]MFC 可以编译环境中修改为静态库中使用MFC,重新编译链接 Matlab如果有静态库,可以选择静态库连接,否则可能就得安装相应的支持库了 可以试着把报缺少的库,从开发电脑上逐个复制到App目录下试试看
我生成的exe应该包含所需要的dll的吧,一个一个的粘我昨天粘了二十多个,mfc那个已经改了,没用,我把缺失的粘完后exe在别的电脑打开闪退,但是我自己程序中已经包含system(“pause”)了[/quote] 用命令行窗口运行程序就不会闪退,就可以看到输出什么信息了[/quote] 你好,我这个问题应该是解决了,我让我同学电脑上环境变量path那里添加matlab路径,不缺少dll,但是运行exe的时候matlab没有被调用(我设置了if语句),但是我自己运作的时候是可以的,别人电脑就不行(没有VS)
一彤 2020-03-10
  • 打赏
  • 举报
回复
引用 2 楼 qq_42694360 的回复:
[quote=引用 1 楼 zgl7903的回复:]MFC 可以编译环境中修改为静态库中使用MFC,重新编译链接 Matlab如果有静态库,可以选择静态库连接,否则可能就得安装相应的支持库了 可以试着把报缺少的库,从开发电脑上逐个复制到App目录下试试看
我生成的exe应该包含所需要的dll的吧,一个一个的粘我昨天粘了二十多个,mfc那个已经改了,没用,我把缺失的粘完后exe在别的电脑打开闪退,但是我自己程序中已经包含system(“pause”)了[/quote] 用命令行窗口运行程序就不会闪退,就可以看到输出什么信息了
qq_42694360 2020-03-10
  • 打赏
  • 举报
回复
引用 11 楼 zgl7903的回复:
你自己电脑上可以安装虚拟机啊, 模拟他人的电脑不就可以?
我这个exe找别人试了,出现不能调用的结果,没有在学校太麻烦,一直在微信说让别人试试我生成的exe,把之前老电脑拾掇出来,这样也方便测试
zgl7903 2020-03-10
  • 打赏
  • 举报
回复
你自己电脑上可以安装虚拟机啊, 模拟他人的电脑不就可以?
qq_42694360 2020-03-10
  • 打赏
  • 举报
回复
引用 9 楼 zgl7903的回复:
https://www.cnblogs.com/dlvguo/p/10159638.html
你好,我大致看了下你发的,远程控制是不可能了,发给导师的,不可能控制导师电脑啥的 我生成exe这些步骤应该没有问题的,但是就是不能在别人电脑上调用,运行可以,我说一下我的操作,配置VS和matlab以及系统环境变量,在我的电脑上成功调用matlab,讲mfc使用改为静态mfc,运行库改为多线程mt,debug改为release,在release文件夹下将exe拿出来,让别人把电脑环境变量添加matlab路径,双击我的exe,只显示调用失败(exe可以正常打开)
qq_42694360 2020-03-10
  • 打赏
  • 举报
回复
引用 7 楼 jacksonfan的回复:
用vs自带的dependse看看有哪些dll
我用的vs2017应该不支持depend了好像,我在别的电脑配置好环境变量就没有再报过缺少dll的错误,就是matlab调用不起来
qq_42694360 2020-03-08
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903的回复:
MFC 可以编译环境中修改为静态库中使用MFC,重新编译链接 Matlab如果有静态库,可以选择静态库连接,否则可能就得安装相应的支持库了 可以试着把报缺少的库,从开发电脑上逐个复制到App目录下试试看
我生成的exe应该包含所需要的dll的吧,一个一个的粘我昨天粘了二十多个,mfc那个已经改了,没用,我把缺失的粘完后exe在别的电脑打开闪退,但是我自己程序中已经包含system(“pause”)了
zgl7903 2020-03-08
  • 打赏
  • 举报
回复
MFC 可以编译环境中修改为静态库中使用MFC,重新编译链接 Matlab如果有静态库,可以选择静态库连接,否则可能就得安装相应的支持库了 可以试着把报缺少的库,从开发电脑上逐个复制到App目录下试试看

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧