Форум программистов, компьютерный форум, киберфорум
Наши страницы
Matlab
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.61/466: Рейтинг темы: голосов - 466, средняя оценка - 4.61
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
1

Создание exe файла в MatLab

01.07.2013, 15:28. Просмотров 84962. Ответов 140
Метки нет (Все метки)

Много раз народ спрашивал, как сделать exe файл в MatLab и возможно ли запустить свою программу, не используя сам MatLab. Привожу простенький метод создания экзешников.

Для теста я взял программу подсчёта полож/отриц/нулей среди задаваемых чисел с простейшим интерфейсом.
Создание exe файла в MatLab
)
Оформляем наш код как функцию и запускаем deploytool, во всплывающем окне выбираем стандартное приложение Windows и вводим название нашего проекта.
Создание exe файла в MatLab

Открывается наш проект. Здесь в поле main мы располагаем наш главный файл(функцию). В поле
вспомогательных файлов помещаются файлы с данными, к которым обращается программа, GUI файлы, функции, к которым в течение работы обращается главная программа или функции, не находящиеся в нужной директории, а также коды на C/C++, которые вы хотите скомпилировать и использовать в дальнейшем в вашем приложении. В нашем случаи есть только исполняющий файл-функция, поэтому это поле остаётся пустым.
Создание exe файла в MatLab

В разделе Package к стандартным создаваемым файлам добавляем установку MCR (MATLAB Component Runtime). Это полный набор dll-библиотек для поддержки работы языка MatLab. Для этого жмём на Add MCR и выбираем встраивание библиотек в пакет.
Создание exe файла в MatLab

Теперь создаём наш составленный проект, нажимая на кнопку Build, а потом создаем пакет вспомогательных файлов, нажимая на кнопку Package. После этого в исходной папке появится файл с разрешением .prj и установочный экзешник для библиотек.
Создание exe файла в MatLab

Запускаем экзешник и после разархивирования устанавливаем MCR.
Создание exe файла в MatLab

Теперь наш экзешник окончательно готов. Для теста закрываем MatLab и запускаем программу.
Создание exe файла в MatLab

Как видно, всё прекрасно работает. Добавлю, что созданный нами exe можно запускать и на компьютерах, где не установлен сам MatLab. Для этого требуется лишь установить MCR перед запуском программы. (установочный файл находится в папке проекта).
Код файл-функции:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function  Proga
clear all;close all;
name_peremennie={'Переменная 1:','Переменная 2:','Переменная 3:','Переменная 4:'};
peremennie_initial={'0','0','0','0'};
options.Resize='on';
options.WindowStyle='normal';
options.Interpreter='none';
Peremennie=inputdlg(name_peremennie,'Ввод переменных',1,peremennie_initial,options);
Pos_num=0;
Neg_num=0;
Zero_num=0;
for i=1:length(Peremennie)
    A(i)=str2num(Peremennie{i});
    if A(i)==0
        Zero_num=Zero_num+1;
    else
        if A(i)>0
          Pos_num=Pos_num+1;
        else
           Neg_num=Neg_num+1;
        end
    end
end
Answer1=cat(2,'Количество положительных переменных равно ',num2str(Pos_num));
Answer2=cat(2,'Количество отрицательный ',num2str(Neg_num));
Answer3=cat(2,'Количество нулей ',num2str(Zero_num));
msgbox({Answer1,Answer2,Answer3},'Ответ');
end
11
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.07.2013, 15:28
Ответы с готовыми решениями:

Matlab gui открытие exe файла в программе
Такая роблема, когда откраваешь в .m файле то он запускает эти exe, но когда...

Создание exe файла
Подскажите,пожалуйста,как мне из созданного в Guide приложения создать ехе?...

Создание exe файла
Здравствуйте! Прочитал тему "Создание exe файла в MatLab", решил попробовать....

Создание exe-файла из GUI (GUIDE) приложения
В архиве форума не нашел ответ на вопрос о принципиальной возможности решения...

Exe файл matlab
Добрый вечер. На 32 разрядной системе (WinXP) стоит Matlab R2011b и студия...

140
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
01.07.2013, 17:10 2
Хм чудесным образом скомпилировал, даже инсталяху получил, но вот при запуске exe-шника пишет ошибку
"Приложению не удалось запуститься, поскольку mclmrrt710.dll не был найден"
Что я делаю не так?
Может с версией проблема?

PS: MRC установил!
1
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
01.07.2013, 17:42  [ТС] 3
Зосима, напомни, у тебя же MatLab2008b??? Или я ошибаюсь?

Добавлено через 17 минут
В целом это видимо проблема несоответствия runtime compiler'а с версией Матлаба. Попробуй найти соответствующую библиотеку, она лежит где-то типа MATLAB\MATLAB Compiler Runtime\v79\runtime\win32\ и попробуй там заменить файл "mclmcrrt7**.dll" на "mclmcrrt710.dll"
Заработало?
0
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
01.07.2013, 17:47 4
У меня R2009, но в папке D:\MATLAB_R2009a\bin\win32\ есть этот mclmcrrt710.dll
0
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
01.07.2013, 20:28  [ТС] 5
Цитата Сообщение от Зосима Посмотреть сообщение
У меня R2009, но в папке D:\MATLAB_R2009a\bin\win32\ есть этот mclmcrrt710.dll
Переименуй его в mclmcrrt79.dll

Добавлено через 3 минуты
а в runtime\win32\ такого файла нет?

Добавлено через 2 часа 33 минуты
Зосима, ну как, что-нибудь получилось???
0
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
01.07.2013, 20:40 6
Я уже на даче, пробовать буду завтра
0
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
02.07.2013, 13:12 7
Цитата Сообщение от lomt Посмотреть сообщение
Переименуй его в mclmcrrt79.dll
Переименовал. Запустил. Открылось командное окно (DOS) и повисло окошко MS Visual C++ Runtime Library
0
Миниатюры
Создание exe файла в MatLab  
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
02.07.2013, 13:19  [ТС] 8
а в runtime\win32\ файла mclmcrrt7 нет?

Добавлено через 2 минуты
Я нашёл обсуждение схожей проблемы, косяк действительно в не согласовании MCR и с версией Матлаб
http://www.mathworks.com/matlabcentral/newsreader/view_thread/249680
0
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
02.07.2013, 15:53 9
У меня нет папки D:\MATLAB_R2009a\runtime (не устанавливал компонент)

*зы: я устанавливал MRC и там есть папка MATLAB Compiler Runtime\v710\ и в ней лежит нужный файл mclmcrrt710.dll и в самом матлабе тоже
ладно, фиг с ним, хорошо, что оно вообще скомпилировалось без проблем
0
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
02.07.2013, 16:07  [ТС] 10
Странный косяк...надо бы, чтобы ещё кто-нибудь попробовал...
0
tvoretsmira
457 / 447 / 56
Регистрация: 28.05.2013
Сообщений: 699
02.07.2013, 16:59 11
Я откомпилировал и запустил получившийся файл Proga.exe без каких-либо проблем. Правда MCR я в проект не добавлял и не устанавливал, так как уже был установлен.
1
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
02.07.2013, 17:07  [ТС] 12
Цитата Сообщение от tvoretsmira Посмотреть сообщение
Я откомпилировал и запустил получившийся файл Proga.exe без каких-либо проблем. Правда MCR я в проект не добавлял и не устанавливал, так как уже был установлен.
Отлично! Значит проблема у Зосимы локальные и связаны с MCR vs Matlab
0
Зосима
4929 / 3303 / 312
Регистрация: 02.04.2012
Сообщений: 6,207
Записей в блоге: 15
Завершенные тесты: 1
02.07.2013, 18:01 13
Цитата Сообщение от lomt Посмотреть сообщение
Значит проблема у Зосимы локальные и связаны с MCR vs Matlab
та я тоже так думаю пока оно на практике мне не нужно, разруливать эту ошибку не обязательно.
0
MurenaVrn
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 19
02.07.2013, 23:34 14
Я наверно что то не то делаю
Пишет вот что:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
0
tvoretsmira
457 / 447 / 56
Регистрация: 28.05.2013
Сообщений: 699
03.07.2013, 00:17 15
Эта программа, которую lomt привёл, такое выдаёт? На каком этапе такое появляется?
0
MurenaVrn
0 / 0 / 0
Регистрация: 16.06.2013
Сообщений: 19
03.07.2013, 08:05 16
не, эт моя такое выдает, на этапе работы функции mcc. У меня несколько форм, оформленных на GUIDE, собранных в отдельную папку (файлы .fig и .m), в качестве главной функции указываю m-файл главной формы. Остальные функции и формы, лежащие в основном каталоге и нескольких каталогах, указываю как подчиненные. Усё, нажимаю build, процесс пошёл. Но после компиляции нескольких функций, выдает ошибку.
0
tvoretsmira
457 / 447 / 56
Регистрация: 28.05.2013
Сообщений: 699
03.07.2013, 10:31 17
Возможно эта проблема: http://www.mathworks.com/support/sol...9PX%2520%25209
Возможно проблема с наличием пробелов в путях к файлам или в самих файлах. Тяжело сказать не имея исходников.
0
R2D2
897 / 806 / 112
Регистрация: 23.11.2012
Сообщений: 2,386
03.07.2013, 10:59 18
Ребят, а может кто то скинуть скомпиленный ЕХЕ-шник. А то матлаба нету.
0
lomt
449 / 275 / 13
Регистрация: 13.11.2012
Сообщений: 589
Записей в блоге: 1
03.07.2013, 11:39  [ТС] 19
Вот экзешник с моей прогай
1
Вложения
Тип файла: rar Proga.rar (110.5 Кб, 186 просмотров)
R2D2
897 / 806 / 112
Регистрация: 23.11.2012
Сообщений: 2,386
03.07.2013, 12:27 20
Хм... Пишет "Программа не запускается". И все тут(
0
03.07.2013, 12:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2013, 12:27

Открытие файла Matlab 7.14 в Matlab 7.12
доброго всем вечера.такая вот проблемка.создал файл в матлабе,но в версии 7.14...

Открытие файлов .exe в matlab
можно ли открыть файл ехе в матлабе так, чтобы он показал код этой программы на...

Matlab-ский exe-шник не запускается
Всем привет! Просили с учёбой помочь и принесли программу сделанную в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru