MATLAB:I18​n:MissingI​CUData - ICU data not found.

Hello,
I am building a stand alone application using matlab 2008b so that I can run my .m file as a .exe file on a server that has no intalled matlab on it. The computer I used to build the project is 32 bit on a Windows XP OS. The server is a 64 bit on a Windows 2003 server OS. I extracted the package I build in the server machine and installed the MCR intaller and ran the .exe file. However I received several errors requesting .dll files. After placing the missing .dll files, I am receiving the following error and I do not know how to resolve it: Severe: MATLAB:I18n:MissingICUData - ICU data not found. The program '[1836] C:\Documents and Settings\elshaer\Desktop\EMC_Equal7p5mx7p5m .exe: Native' has exited with code 2 (0x2).
Can you please help me resolve this error? Thank you

1 Comment

Find the file icudt*l.dat and copy it to the directory from where your application loads icu*.dll. In both cases * stands for the version. In my case for the WINDOWS the .dat file is in the directory '%matlabroot%\bin\win64' and in the case of LINUX it is located '$matlabroot/bin/glnxa64' (matlabroot is the root directory for your MATLAB). Please copy the file from the original location to the the path for dynamic libraries run time (in the same folder with icudt.dll). I hope this will help good luck! Davit

Sign in to comment.

 Accepted Answer

It seems like the error you receive is because of a corrupt environment. Do you have multiple installations of MCR on the target machine? Also, what were the missing DLLs that you manually had to copy?

6 Comments

I do not think I do. To make sure, how can I check whether or not I have more than one installation of the MCR on the target machine?
The missing .dll files are the following:
boost_signals-vc80-mt-1_34_1.dll
boost_thread-vc80-mt-1_34_1.dll
icudt36.dll
icuin36.dll
icuio36.dll
icuuc36.dll
libmwfl.dll
libmx.dll
libut.dll
mclmcrrt79.dll
zlib1.dll
Okay, at least some of these should automatically come with the MCR (eg. libmwfl, libmx, mclmcrrtXX.dll, etc. - the icu*.dll files might also be MathWorks libraries). I think the real problem is that the MCR was not added to the system path correctly (probably due to issues with admin privileges?). I recommend that you remove these copied DLLs from your directory and add <mcrroot>\runtime\win32 to the system path (described here: http://www.mathworks.com/help/toolbox/compiler/bqrw460-1.html#bqrw5ck-1)
Hi again,
This is what I did so far:
1) I deleted all the .dll files
2) I created the following folders C:\WINDOWS\system32\R2008b\runtime\win32 and placed the mcrinstaller.exe in it
3) I also created an environmental variable with the variable name mcr_root and value C:\WINDOWS\system32\R2008b\runtime\win32
4) I ran the mcrinstaller.exe
My .exe file is running now on the server (target pc). However, it is not using the full capacity of the server. Is it possible to install the mcrinstaller for a 64 bit pc on the sever and run my .exe file? Also, do I have to uninstall the mcrinstaller for the 32 bit?
Thanks
To be able to use the 64-bit MCRInstaller, you will also need to compile your application on 64-bit MATLAB (you must use the same version and type(32- or 64-bit) of MCRInstaller as the one you compiled against). Simply install 64-bit MATLAB on a 64-bit Windows machine and re-create the same steps.
Yes, I would recommend uninstalling the 32-bit version to avoid any clashes (also make sure that the system path is set accordingly).
Isn't that what I said right from the beginning? ;-)
Thanks a lot Kaustubha. You were a great help to me. Keep up the excellent work :)
Thanks Walter. I just did not understand your answer from the beginning :)

Sign in to comment.

More Answers (1)

You must build on the same OS that you will be running on; for this purpose, 64 bit windows is a different OS than 32 bit windows.

Categories

Asked:

on 15 Mar 2011

Commented:

on 20 May 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!