Unrecognized function or variable 'gcp' in compiled stand alone application
古いコメントを表示
Hi,
Compiling via mcc i get the following error at runtime (m2022a).
Is there a specific options or compile directive to ensure the paralell toolbox is included in the standalone application?
Unrecognized function or variable 'gcp'.
Error in MatlabThreads.Helper.StartThreadPool (line 28)
'gcp' may have been excluded from the MATLAB search path at compilation due to misuse of the path related mcc flags (-N, -p, -I).
Have the application owner verify that these flags were correctly used.
Contact the application owner for more details.
Thanks
回答 (2 件)
Walter Roberson
2022 年 8 月 24 日
移動済み: Walter Roberson
2022 年 8 月 24 日
0 投票
Notice that the documentation for gcp does not have any Extended Capabilities section. It might not be available in compiled executables.
Instead record the output of the call that creates the pool and use that variable.
4 件のコメント
LP
2022 年 8 月 24 日
Walter Roberson
2022 年 8 月 24 日
You could attach the pool as UserData to a figure, but that is effectively the same as a global variable.
You could create a static member of a handle class, but that is effectively the same as a persistent variable.
LP
2022 年 8 月 24 日
Walter Roberson
2022 年 8 月 24 日
Well if a persistent or global variable is not acceptable then I guess your next option would be to reimplement in a different programming language.
Ed Mitchell
2022 年 8 月 24 日
0 投票
I would not expect you to need a specific flag to include gcp. I put together a super simple code example:
if(isempty(gcp('nocreate')))
parpool('threads')
end
parfor i=1:10
disp(rand(10))
end
delete(gcp);
and compiled it with:
mcc -m SimpleThreadPoolCompiler.m
When I run it from the command prompt, it works without issue. If you compile this simple example and attempt to run it, do you hit the same error?
カテゴリ
ヘルプ センター および File Exchange で Parallel Computing Fundamentals についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!