我正在Mathematica中构建一个应用程序包。该应用程序包含多个包,并引用其他应用程序包
要设置所有内容,我已经使用并遵循了工作台帮助部分的应用程序包说明,该说明也可以在包和应用程序子部分的http://reference.wolfram.com/workbench/index.jsp?topic=/com.wolfram.eclipse.help/html/tasks/applications/introduction.html下找到,但是.. 。
主程序包和应用程序名为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 [?]的确切包声明,额外的包和带有我在这里提供的名字的引用包,让一切顺利进行,我非常感谢。
答案 0 :(得分:4)
请尝试:
BeginPackage["OptMainFuncAll`",
{"BasicSym`",
"OptMainFuncAll`IntermFunct`",
"QuadOptMainFuncAll`VolCandExt`"}
]
当前包名称是第一个参数,而第二个参数是它将依赖的包名称(上下文)列表。