32bit and 64bit compilations

조회 수: 5 (최근 30일)
Harel Primack
Harel Primack 2013년 3월 17일
답변: shamsudheen p 2021년 5월 16일
Hi All,
I am trying to use matlab 2013a for making 32 bit and 64 bit compilations (with the matlab compiler).
The problem is that running "mbuild -setup" creates "compopts.bat" file in my application data folder: "...\AppData\Roaming\MathWorks\MATLAB\R2013a\compopts.bat". Unfortunately, the files are different and incompatible for the 32 and 64 bit versions.
Any simple way around it? I wouldn't like to run mbuild every time I start matlab.
Thanks, Silviu.

답변 (3개)

Mark Mikofski
Mark Mikofski 2014년 5월 29일
I've just noticed that R2014a no longer uses the same compopts.bat or mexopts.bat for both targets in AppData\Roaming\MathWorks\MATLAB\R2014a but instead now has separate xml files for 32-bit and 64-bit files called
mex_C_win32.xml
mex_C_win64.xml
MBUILD_C_win32.xml
MBUILD_C_win64.xml
Yay! Thanks TMW for hearing us and responding helpfully! I couldn't find it documented anywhere or in the release notes, but this is a nice if tiny improvement.
  댓글 수: 4
Ken Atwell
Ken Atwell 2014년 5월 30일
@Image Analyst, we'll keep this in mind, but honestly I think it is unlikely we'd invest in this, as support for the 32-bit version of MATLAB is beginning to wind down (no definite sunset timeline has been set, but it will happen some time in the next few years).
John
John 2015년 2월 11일
I definitely agree with @Image Analyst, the need for compiling both 32 bit and 64 bit versions would be highly desireable

댓글을 달려면 로그인하십시오.


Image Analyst
Image Analyst 2013년 3월 17일
I don't think there's a way around this. Haven't checked lately but a while ago they told me that I had to run mbuild -setup every time I want to switch compiling to a different version (32 or 64) of MATLAB.
Well there might be a workaround. What I do is have a file called compile.m and in there I put a bunch of code to compile the m-file in that project folder with whatever options I want for that file. In there you could determine the version of MATLAB, and then copy over the proper version of the compopts.bat file. Haven't tried it but could be worth a shot.
howManyMATLABbits = str2double(howManyMATLABbits(4:5));
file32 = '...\AppData\Roaming\MathWorks\MATLAB\R2013a\compopts32.bat'
file64 = '...\AppData\Roaming\MathWorks\MATLAB\R2013a\compopts64.bat'
fileMaster = '...\AppData\Roaming\MathWorks\MATLAB\R2013a\compopts.bat'
if howManyMATLABbits == 32
copyfile(file32, fileMaster);
else
copyfile(file64, fileMaster);
end
  댓글 수: 2
Silviu Zilberman
Silviu Zilberman 2013년 3월 18일
Thanks Image Analyst, your idea works very well.
Silviu Zilberman
Silviu Zilberman 2013년 3월 18일
Forgot to mention that I don't have the function howManyMATLABbits. I used instead
Platform = computer();
where Platform='PCWIN' for 32bit and Platform='PCWIN64' for 64 bit.
Thanks again, Silviu.

댓글을 달려면 로그인하십시오.


shamsudheen p
shamsudheen p 2021년 5월 16일
I am getting the error message as 'Problem creating Accelerator MEX file for model 'PVarray_Grid_IncCondReg_det' during the simulation of 100-kW Grid-Connected PV Array using MATLAB 2013a on windows 10(32bit).
When i run mex -setup it gave the output as
Select a compiler:
[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2013a\sys\lcc
[0] None
Even I selected the first one the error persists. Please help me to solve the issue

카테고리

Help CenterFile Exchange에서 MATLAB Compiler에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by