Standalone Compiler Load ImageDataStore

1 view (last 30 days)
patmen346
patmen346 on 7 Nov 2022
Commented: patmen346 on 9 Nov 2022
Hi everyone I am struggeling with the Compiler Toolbox. I want to run a function in a standalone app, which simply loads a available IMDS mat-file and train a network for this. Unfortunately, it crashs in the compiled version with the following error message:
Warning: While loading an object of class 'matlab.io.datastore.ImageDatastore':
Cannot access 'getFiles' in class 'matlab.io.datastore.FileSet'.
Message: Cannot access 'getFileSizes' in class 'matlab.io.datastore.FileSet'.
Identifier: MATLAB:datastoreio:dsfileset:parensNotAllowed
In file: C:\Program Files\FraunhoferIFF\MATLAB Runtime\v99\mcr\toolbox\matlab\datastoreio\+matlab\+io\+datastore\@ImageDatastore\ImageDatastore.m
line: 442
It works in Matlab itself, but not with the compiled standalone application.

Answers (1)

Steven Lord
Steven Lord on 7 Nov 2022
See the first Tip on this documentation page. If there's no reference in the code itself that tells MATLAB Compiler it needs to include the imageDatastore class in your application when it analyzes your code you will need to explicitly state that MATLAB Compiler needs to include it. Use the -a argument when you call mcc or the %#function pragma (which I would put on the line before or the line after the load call in your code) to explicitly inform MATLAB Compiler that it needs to include the class.
  1 Comment
patmen346
patmen346 on 9 Nov 2022
Hi Steven, thanks for your help! The imageDatastore class is already in the MATLAB path and should be included. If I try to add it via both method, it doesn't solve the problem. Nevertheless, I've figured out that my batch code on Windows was using an older version of MATLAB (2020b). Both MATLAB's were in the system path variable and it seems that the older version was used via the batch script calling 'matlab'. The issue is solved by deleting the older MATLAB from system path and using the 2022b version!

Sign in to comment.

Categories

Find more on C Shared Library Integration in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!