我正在 Mathematica 中构建一个应用程序包。应用程序包含多个包并引用其他应用程序包
为了设置一切,我使用并遵循了工作台帮助部分的应用程序包说明,该部分也可以在以下位置找到:http://reference.wolfram.com/workbench/index.jsp?topic=/com.wolfram.eclipse.help/html/tasks/applications/introduction.html http://reference.wolfram.com/workbench/index.jsp?topic=/com.wolfram.eclipse.help/html/tasks/applications/introduction.html在下面封装和应用小节但是...
- 我已经实现并测试了单包应用程序包,所有这些似乎都工作正常。
- 由于以下已发现的问题,我的多个软件包和应用程序目前无法正常工作:
a) 应用程序的主包调用在额外包中实现的函数,但这些函数似乎在那里不被识别。我什至尝试使用包开头的 Needs 命令在主包中显式调用它们,但无济于事。 *我究竟做错了什么?*按照帮助指示,额外的软件包都位于应用程序文件夹中。
进一步来说:
主包和应用程序名为 OptMainFuncAll`,因此主包 OptMainFuncAll.m 开头
BeginPackage["OptMainFuncAll`"]
额外的包 IntermFunct.m 和 VolCandExt.m 开头为:
BeginPackage[ "OptMainFuncAll`IntermFunct`"]
BeginPackage[ "QuadOptMainFuncAll`VolCandExt`"]
然而,IntermFunct.m 和 VolCandExt.m 中定义的函数是unknown当被召唤时
OptMainFuncAll.m -- 我究竟做错了什么?
我什至尝试明确声明
Needs[ "OptMainFuncAll`IntermFunct`"]
Needs[ "QuadOptMainFuncAll`VolCandExt`"]
在 OptMainFuncAll.m 的开头,它没有解决我的问题
此外,我还引用了第二个应用程序包(BasicSym),并且工作台将其显示为引用,但其功能在 OptMainFuncAll.m 中似乎也未知。
我也尝试过以 OptMainFuncAll.m 开头
BeginPackage[{OptMainFuncAll`, BasicSym`}]
但它不起作用;运行时控制台返回消息:
BeginPackage::cxt:上下文无效
指定在位置 1
BeginPackage[{OptMainFuncAll,
BasicSym
}]。上下文必须包括
有效的符号名称由 和 分隔
以`结尾。 EndPackage::noctx:否
先前定义的上下文。
我确信我犯了一些愚蠢的应用程序包开发人员错误,但我似乎无法动手。
如果您能告诉我 BeginPackage[?] 中主包、额外包和引用包的确切包声明以及我在此处提供的名称,以便一切顺利工作,我将不胜感激。