MATLAB Answers

Error when doing Real-Time Simulink in External Mode "Unable to create mex function"

68 ビュー (過去 30 日間)
Sajad  A.Anbaran
Sajad A.Anbaran 2019 年 10 月 21 日
Dear Sir/Madame,
I am trying to do Real-Time simulatation of a vehicle model that is built in simscape.
I have already done all prepration and configuration needed to perform RT simulation. Moreover, I have successfully simulated a pure EV model in Target Computer. So all the connection are okay. Now, I want to do the same with Engine-based model but I receive the following error message.
What causes this error? Thank you.
"Making simulation target "ICE_PID_test1_v2_rt_sfun", ... Microsoft (R) Program Maintenance Utility Version 14.00.23918.0 Copyright (C) Microsoft Corporation. All rights reserved. ### Compiling "ICE_PID_test1_v2_rt_sfun.c" cl.exe /c /Zp8 /GR /W3 /EHs /D_CRT_SECURE_NO_DEPRECATE /D_SCL_SECURE_NO_DEPRECATE /D_SECURE_SCL=0 /DMATLAB_MEX_FILE /nologo /MD /I "C:\Program Files\MATLAB\R2016b\extern\include" /I "C:\Program Files\MATLAB\R2016b\simulink\include" /I "C:\Program Files\MATLAB\R2016b\simulink\include\sf_runtime" /I "C:\Program Files\MATLAB\R2016b\stateflow\c\mex\include" /I "C:\Program Files\MATLAB\R2016b\rtw\c\src" /I "D:\Documents\MATLAB-simulation\xPC Target\slprj\_sfprj\ICE_PID_test1_v2_rt\_self\sfun\src" "ICE_PID_test1_v2_rt_sfun.c" ICE_PID_test1_v2_rt_sfun.c c:\program files\matlab\r2016b\extern\include\tmwtypes.h(788): fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\Bin\amd64\cl.exe"' : return code '0x2' Stop.
Component:Make | Category:MakeerrorOpen
Unable to create mex function 'ICE_PID_test1_v2_rt_sfun.mexw64' required for simulation."

回答 (2 件)

Sajad  A.Anbaran
Sajad A.Anbaran 2019 年 10 月 23 日
I managed to solve this problem.
The cause of this error was the missing headers in C compiler, 'stddef.h' . I use Microsoft Visual C++ 2015 pro. I added the headers and libraries and now it works fine.
Two lessons I learned here:
1) read the error message in full. it often provides the clue to identify and resolve the problem.
2) it is imperative that you are sure about your model accuracy and all the configurations of host- target is good. it would help to elimnate many possiblities during troubleshooting of the error message.
  1 件のコメント
Jason Williamson
Jason Williamson 2020 年 10 月 27 日
Sajad,
Which 'stddef.h' header file did you add and where did you add it to? I have found several different sttdef.h files in the MATLAB program files and was not sure which to add or where to add it. Also, in the /I paths I did not have the path that is not underlined, the stateflow path. Did you have to add that as well? I'm experiencing the exact same issue and have as of yet been unable to solve it.

サインインしてコメントする。


Diego Kuratli
Diego Kuratli 2019 年 10 月 21 日
Are you using Simulink Real-Time as System target file in your model Configuration Parameters?
Try to clear the SLRT compiler:
>> slrtsetCC('VisualC','')
Then, select the compiler by using
>> mex -setup
Delete all build files and folders in your workspace, and try to build again your model.
  3 件のコメント
Sajad  A.Anbaran
Sajad A.Anbaran 2019 年 10 月 23 日
Sure, I will try that. Meanwhile, I'd like to draw your attention to this part of the error message
"fatal error C1083: Cannot open include file: 'stddef.h': No such file or directory NMAKE"
To my understanding, this part of message indicates that C++ compiler does not have 'stddef.h' library. Could this be the cause of the error?
Thank you for your time!

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by