【问题标题】:MATLAB compiler says some functions in my app are using not licensed for compilation functionsMATLAB 编译器说我的应用程序中的某些函数正在使用未经许可的编译函数
【发布时间】:2017-10-27 09:25:40
【问题描述】:

我想使用 编译我的应用程序,但有问题...
它说有些功能未获得编译许可。
问题是我没有在我的应用程序中使用这些功能(其中一个是fimath.m)。
我认为这些函数在我不知道的一些函数中使用。
我的问题是如何找出我的哪个函数正在使用这些函数,以便删除它们或用其他函数替换它们。
我的应用中有50多个功能,无法一一查看。

【问题讨论】:

标签: matlab-compiler matlab compilation compiler-warnings dependency-management matlab-compiler


【解决方案1】:

对于每个返回的“未授权”函数,您可以执行以下命令,

dbstop in <function name> % without the <>

然后为几个典型的输入/案例正常运行您的代码。如果它在这些断点之一处停止,请查看调用堆栈(使用 dbstack 或 MATLAB GUI 的编辑器选项卡),并从您自己的代码中识别入口点。

如果没有一个断点被命中,这可能意味着这些函数在代码中被引用,但某些逻辑阻止了它们的执行(实际上将它们变成“无法访问的代码”)。在这种情况下,您可能需要手动删除这些引用。要知道从哪里来,使用VTodorov 发布的链接中的信息,您可以使用

列出每个文件的依赖项
[fList,pList] = matlab.codetools.requiredFilesAndProducts('myFun.m');

可以在dir 的输出上调用(经过一些小的转换)。使用toponly flag 可能很有用。

【讨论】:

    猜你喜欢
    • 2018-02-23
    • 1970-01-01
    • 2012-11-10
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多