Bonjour
J’essayé de convertie mon M-file matlab à exécutable file mais l’instruction mcc -nomfile
donne cette erreur ?!
Citation:
>> mcc -m principale
??? Error: File "principale" is a script M-file and cannot be compiled with the current Compiler.
Version imprimable
Bonjour
J’essayé de convertie mon M-file matlab à exécutable file mais l’instruction mcc -nomfile
donne cette erreur ?!
Citation:
>> mcc -m principale
??? Error: File "principale" is a script M-file and cannot be compiled with the current Compiler.
Une petite recherche t'aurait certainement conduit à cette discussion [COMPILER] La fonction mcc
Citation:
Envoyé par tug83
SVP ces lien ça marche pas !!!!!
C'est corrigé : Converting Script M-Files to Function
S'il vous plait je n'ai rien compris.
Est-ce que tu peutxm'aider ?
maintenant j'ai le fichier principale.m
C'est un fichier de l'interface générale qui appelle les autres interfaces
Quelle est la première étape que je dois faire ?
Tu dois transformer ton fichier principal.m qui est un script en fonction.
Une fonction est un fichier .m qui commence forcément par :Donc dans ton cas tu rajoutes tout simplement au début de ton fichier :Code:function nomdelafonction
principale.m :Ensuite tu pourras compiler.Code:function principal()
Vérifie quand même avant que le fait d'avoir transformer ton script en fonction ne modifie pas son fonctionnement.
Merci caro
mais j'ai l'erreur suivante !!! qu'est-ce que je dois faire ?!
Code:mcc -m principale
Citation:
Warning: MATLAB Toolbox Path Cache is out of date and is not being used.
Type 'help toolbox_path_cache' for more info.
To get started, select MATLAB Help or Demos from the Help menu.
Warning: No matching builtin function available for C:\MATLAB7\toolbox\simulink\simulink\set_param.bi
Could not find the compiler "cl" on the DOS path.
Use mbuild -setup to configure your environment properly.
C:\MATLAB7\BIN\WIN32\MEX.PL: Error: Unable to locate compiler.
??? Error using ==> mbuild
Unable to complete successfully
??? Error: An error occurred while shelling out to mbuild (error code = 1).
Unable to build executable (specify the -v option for more information).
As-tu configuré ton compilateur ?
Il faut le faire avec :et lance aussi la commande que MATLAB te conseille et suit les instructions :Code:mex -setup
Voir aussi cette note :Why do I receive a set_param Warning or Error when Using MATLAB Compiler 4.0? - 1-O9PX9Citation:
Type 'help toolbox_path_cache' for more info.
merci caro j'ai suivi votre étape mais toujours il y a des erreurs
désolé est-ce que tu peux m'aider
Code:>> mcc -m principale
Citation:
Toolbox Path Cache read in 0.02 seconds.
MATLAB Path initialized in 0.13 seconds.
To get started, select MATLAB Help or Demos from the Help menu.
Warning: No matching builtin function available for C:\MATLAB7\toolbox\simulink\simulink\set_param.bi
Could not find the compiler "lcc" on the DOS path.
Use mbuild -setup to configure your environment properly.
C:\MATLAB7\BIN\WIN32\MEX.PL: Error: Unable to locate compiler.
??? Error using ==> mbuild
Unable to complete successfully
??? Error: An error occurred while shelling out to mbuild (error code = 1).
Unable to build executable (specify the -v option for more information).
Code:mbuild -setup
Citation:
Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc C version 2.4 in C:\MATLAB7\sys\lcc
[2] Microsoft Visual C/C++ version 6.0 in C:\Program Files\Microsoft Visual Studio
[0] None
Compiler: 1
Please verify your choices:
Compiler: Lcc C 2.4
Location: C:\MATLAB7\sys\lcc
Are these correct?([y]/n): y
Try to update options file: C:\Documents and Settings\hazem\Application Data\MathWorks\MATLAB\R14\compopts.bat
From template: C:\MATLAB7\BIN\WIN32\mbuildopts\lcccompp.bat
Done . . .
--> "C:\MATLAB7\bin\win32\mwregsvr C:\MATLAB7\bin\win32\mwcomutil.dll"
'C:\MATLAB7\bin\win32\mwregsvr' n'est pas reconnu en tant que commande interne
ou externe, un programme ex‚cutable ou un fichier de commandes.
Undefined subroutine &mexsetup::expire called at C:\MATLAB7/bin/win32/mexsetup.pm line 818.
??? Error using ==> mbuild
Unable to complete successfully
Pour le warning de la 1ère commande, as-tu bien lu la note :Why do I receive a set_param Warning or Error when Using MATLAB Compiler 4.0? - 1-O9PX9 ?
Après c'est étrange.
As-tu vérifier que le fichier C:\MATLAB7\bin\win32\mwregsvr (avec surement une extension .exe) existe sur ton PC ?
Quelle est ta version exacte de MATLAB (obtenue avec la commande version dans MATLAB) ?
Quel est ton OS ? (Windows XP, Vista ...)
j'ai win XP sp2
et MATLAB 7.0.0.19920 (R14)
mais quand je fais la recherche dans le répertoire win32 j'ai pas trouvé le fichier "mwregsvr"
merci caro
demain inchala je réinstallez mon version de matlab est-ce que auriez-vous une version spécifique de matlab ?
j'ai corréger les erreur
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 To resolve this issue, you should modify the following file: $MATLAB/toolbox/compiler/deploy/matlabrc.m (where $MATLAB = the MATLAB root directory on your machine) Comment out the following lines (numbers 81 and 82) that have a call to SET_PARAM. set_param(0,'PaperType',defaultpaper); set_param(0,'PaperUnits',defaultunits); When you are finished, save these changes and issue the following command at the MATLAB command prompt: rehash toolboxcache
et j'ai cette message d'erreur aprés le modification
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 rehash toolboxcache >>mcc -m principale Toolbox Path Cache read in 0.08 seconds. MATLAB Path initialized in 0.14 seconds. To get started, select MATLAB Help or Demos from the Help menu. Warning: No matching builtin function available for C:\MATLAB7\toolbox\simulink\simulink\set_param.bi Could not find the compiler "lcc" on the DOS path. Use mbuild -setup to configure your environment properly. C:\MATLAB7\BIN\WIN32\MEX.PL: Error: Unable to locate compiler. ??? Error using ==> mbuild Unable to complete successfully ??? Error: An error occurred while shelling out to mbuild (error code = 1). Unable to build executable (specify the -v option for more information).
Je ne suis pas sure de bien comprendre ta question mais personnellement je n'ai pas la toolbox Compiler donc je ne saurais pas te donner de conseil sur la meilleure version à installer si c'est ça que tu veux savoir.
Sinon vu ce Warning :Je ne pense pas que tu aies fais les modifications demandées (mise en commentaires des 2 lignes commençant par set_param dans le fichier matlabrc.m).Citation:
Warning: No matching builtin function available for C:\MATLAB7\toolbox\simulink\simulink\set_param.bi
Mais bon c'est secondaire.
Merci Caro
Je trouve l’erreur dans ma version de matlab, je pense qu'il manque des fichiers, Je suis désolé.
J’ai fais la même chose comme tu dis et j’ai testé l’instructionsur mon pc personel et ça marche sans erreur sur(win XP , SP 2 , MATLAB 7.0.0.19920 (R14)Code:mcc m principale.m
Après l’exécution j’ai trois fichiers sont
1 : principale_mcc_component_data type de ficher -C-
2 : principale_main type de ficher -C-
3 : principale type de ficher – Application-
Mais j’ai une nouvelle erreur quand je lancé l’application principale ça marche normale mais quand j’appelle la sous fonction « pédagogique » ils me donne l’erreur suivant « dans l’image attaché «
Pour t'aider il faudrait plus d'infos.
Comment est appelée la fonction nommée pedagogique dans ton programme principal.m ?
Enfin au moins tu as fini par trouver le 1er problème ;)
dans le programme principale .m elle apelle la fonction pedagogique
comme suite
Code:
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
29
30
31
32
33
34
35
36
37 function principale () clear all, close all,clc X=imread('a1.jpg','jpg'); ax=axes('position',[0 0 1.02 1.05 ]); imagesc('cdata',X); uistack(ax,'top'); set(gcf,'Resize','Off','Name',' programme principale ""',... 'Menubar','None','NumberTitle','off',... 'position',[50 50 900 700]); for i=1:1000 workbar(i/1000,'Attendez SVP (Telechargement des Fichier )...','Instalation ') end %%% push poton 1 fermé L'interface %%% [x,map]=imread('a2.bmp'); aa1=imresize(x, [29 40]); h1=uicontrol('units','pixels','position',[20 15 38 27],'cdata',aa1,'callback',... 'close(gcf);'); %%%%%%%%% méthode pédagogique %%%%%%%% [x,map]=imread('a3.bmp'); aa2=imresize(x, [45 140]); h6=uicontrol('units','pixels','position',[73 65 138 40],'cdata',aa2,'callback',... 'pedagogique'); %%%%%%%%% Excution automatique %%%%%%%% [x,map]=imread('a6.bmp'); aa2=imresize(x, [35 140]); h6=uicontrol('units','pixels','position',[110 20 138 30],'cdata',aa2,'callback',... 'automatique'); %%%%%%%%%%%%%%%%%Réponse de Gabor %%%%%%%%%%%% [x,map]=imread('a9.bmp'); aa13=imresize(x, [45 60]); h6=uicontrol('units','pixels','position',[710 10 50 43],'cdata',aa13,'callback',... 'gaboreffet');
et la fonction pedagogique
aussi il ya d'autre sous fonction dans la fonction pedagogiqueCode:
1
2
3
4
5
6
7
8
9 function pedagogique () clear all, close all,clc X=imread('a4.jpg','jpg'); ax=axes('position',[0 0 1.15 1.198 ]); imagesc('cdata',X); uistack(ax,'top'); set(gcf,'Resize','Off','Name',' EXPLICATION PEDAGOGIQUE ',... 'Menubar','None','NumberTitle','off',... 'position',[50 50 900 700 ]);
Remarque : j'ai la même erreur "comme l'erreur de la fonction pedagogique" quand s'applique tous les sous fonction dans la fonction principale
Merci Caro ;)
C'est un peu le même problème qu'ici : [Compiler] Déploiement d'un executable
Comme tes fonctions sont dans des callbacks MATLAB ne les reconnait pas en tant que fonctions.
Lis le lien que je t'ai donné ci-dessus, et s'il y a quelquechose que tu ne comprends pas reposte un message.
Sinon une solution de contournement serait de mettre tes fonctions appelées dans tes callbacks en sous-fonction de la fonction principale.m plutôt qu'e fichiers séparés.
j'essaie les deux maniéré de ré soulé c'est problème
premiére méthode : j'ai mètre les fichiers séparé(automatique,pedagogique)
comme des fonction
exemple :
Code:
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
29
30
31
32
33
34
35
36
37
38
39
40 function automatique () close all,clc X=imread('a4.bmp','bmp'); ax=axes('position',[0 0 1.15 1.198 ]); imagesc('cdata',X); uistack(ax,'top'); set(gcf,'Resize','Off','Name',' autoumatique ',... 'Menubar','None','NumberTitle','off',... 'position',[0.1 50 1180 700 ]); B1 = axes('Position',[0.006 0.02 0.48 0.90],... 'visible','Of'); B2 = axes('Position',[0.51 0.02 0.48 0.90],... 'visible','Of'); w=16; textLoad='Load Fingerprint Image'; h=uicontrol('Style','pushbutton',... 'Position',[0.1,670,85,30],... 'String','Ouvrire',... 'Callback',... ['image1=loadimage;'... 'subplot(B1);'... 'imagesc(image1);'... 'title(textLoad);'... 'colormap(gray);']); ........................... ................................... ............................................ ................................................... ........................................................... ................................................................... %%%%%%%%%%%%%%pushputon revien à la interface globale %%%%%%%% [x,map]=imread('a5.bmp'); aa3=imresize(x, [45 80]); h6=uicontrol('units','pixels','position',[945 660 79 43],'cdata',aa3,'callback',... 'Globale');
la fenêtre ouvrier normale mais quand j'ai ouvrier une image depuis
la pushbutton "Ouvrire" l'image n'affiche pas et me donne cette érreur
Code:
1
2
3
4
5 %%%%%%%%%%%%%%%%%%%%%%%erreur %%%%% ??? Undefined function or variable 'pedagogique'. ??? Error while evaluating uicontrol Callback.
deuxième méthode :
j'ai mètre les fichiers séparer(automatique et pedagogique) dans la même function principale
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 function principale () : : : function automatique () : : : : %%callback 'principale' function pedagogique () : : : : : %%callback 'principale'
Quand j'appelle la function pedagogique j'ai l'érreur suivant "l
Code:
1
2
3
4
5 ??? Undefined function or variable 'B1'. ??? Error while evaluating uicontrol Callback.
" aussi la meme chose pour la function automatique
La 2ème méthode est la bonne a priori.
Ta variable B1 est définie dans le corps de ta fonction principale et n'est donc pas connue par tes sous-fonctions.
Pour que tes sous-fonctions la connaisent il y a plusieurs solutions qui sont montrés dans le tutoriel : Développement efficace des interfaces graphiques (GUI)
Prend bien le temps de le lire.
Je te conseillerais a priori l'utilisation des nested fonctions