- Verify Compiler Compatibility: Confirm that the version of MATLAB Compiler SDK you are using is compatible with your MATLAB version (R2021b in your case). Check the MathWorks documentation or contact MathWorks support to ensure compatibility.
- Check Compiler Command: Review the command you used to compile the class. Make sure you are using the correct options and flags for generating the C++ shared library. Double-check that the paths and filenames are accurate.
- Clean and Rebuild: If the error persists, try performing a clean build by deleting any previously generated files and rebuilding the shared library from scratch. This can help eliminate any potential conflicts or issues from previous compilation attempts.
Compiler sdk failed to genereate cpp shared library for handle class
3 ビュー (過去 30 日間)
古いコメントを表示
classdef MyPosition < handle
%MYPOSITION Position class
% Copyright 2021 The MathWorks, Inc.
properties
X (1,1) double {mustBeReal}
Y (1,1) double {mustBeReal}
end
methods
function obj = MyPosition(X,Y)
arguments
X (1,1) double {mustBeReal}
Y (1,1) double {mustBeReal}
end
obj.X = X;
obj.Y = Y;
end
end
end
Matlab compiler sdk supports creation of an C++ MATLAB Data API shared library from strongly typed MATLAB classes.However, the code attached with the official documentation uses the value class, so I modified it a little bit to make it a handle class, as shown above. But the compiler sdk app reports error:
Preparing Runtime...
mcc -W 'cpplib:calculatearea,generic' -T link:lib -d D:\Learn\matlabSDK\strongly_typed_noNameSpace\output\cpp_compilerSDK_GUI -v D:\Learn\matlabSDK\strongly_typed_noNameSpace\MyPosition.m
Compiler version: 8.3 (R2021b)
Analyzing file dependencies.
Error: Failed to generate file "D:\Learn\matlabSDK\strongly_typed_noNameSpace\output\cpp_compilerSDK_GUI\calculateareav2.hpp".
mcc failed.
The error log was quite simple so I did not know what to do. The error dispeared, however, if I simply deleted "<handle" to make a value class back again. My question is: Is this a limitation of matlab compiler sdk that it can only deal with value class? Or did I miss something like an option flag that needs to be set?
0 件のコメント
採用された回答
BhaTTa
2023 年 11 月 8 日
The MATLAB Compiler SDK does support generating C++ MATLAB Data API shared libraries from both value classes and handle classes. The error you encountered is not related to the class type (value or handle), but rather to a specific issue in the code or the compilation process.
I was able to create the shared library with the handle class , below is the attached image.
To troubleshoot the error you encountered, consider the following steps:
Hope it helps.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB Compiler SDK についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!