R2024b Codegen runs out of memory. R2018a compiles to .mex and .C++ without issues.

4 次查看(过去 30 天)
I have cut down a code base to a single function that compiles to .mex and to .cpp just fine using R2018a. However, using R2024b (which I just got), the compiler runs a long time, but eventually runs out of memory and errors out.
I have looked at the coder.config('mex') and coder.config('lib') outputs for both versions, and I don't see anthing obvious.
I have attached the short test bench I used: RxTB.m, the .mat file it loads (OFDMRxSave.mat), and the problemmatic code, OFDMRxR1.m
Again, this compiles fine under R2018a, but fails using R2024b, with no changes to anything, including the .prj file. However, I cannot attach the .prj file, because the file type is not allowed by this APP.
  5 个评论
Dr W Kurt
Dr W Kurt 2024-10-15
And, by the way, R2024b compiles this code to .mex without any errors, so it's only when I try to compile to .C or .C++ that problems arise. Very strange.

请先登录,再进行评论。

回答(1 个)

Subhajyoti
Subhajyoti 2024-10-22
编辑:Subhajyoti 2024-10-22
It is my understanding that you are able to generate the MEX files for your code. But when you are trying to generate C/C++ files, it is throwing out of memory error.
This error is due to implicit expansion operation occurring during run-time.
Refer to following MathWorks Documentation link to know more about ‘Optimize Implicit Expansion in Generated Code’ in MATLAB:
While generating MEX file, the MATLAB Coder generates C or C++ files (as mentioned in code-generation parameter) and the MEX file acts like an API between MATLAB and the C/C++ file. You can also use these C/C++ files directly as a workaround for code-generation error. The C/C++ build files are generated in the following path:
./codegen/mex/OFDMRxR1/
Additionally, you can refer to the following resources to know more about Analysis and Generation of C/C++ Code from MATLAB Code Using "MATLAB Coder":

产品


版本

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by