在Mathematica中构建具有多个包和引用的应用程序包

时间:2011-04-06 14:26:14

标签: wolfram-mathematica packages

我正在Mathematica中构建一个应用程序包。该应用程序包含多个包,并引用其他应用程序包

要设置所有内容,我已经使用并遵循了工作台帮助部分的应用程序包说明,该说明也可以在包和应用程序子部分的http://reference.wolfram.com/workbench/index.jsp?topic=/com.wolfram.eclipse.help/html/tasks/applications/introduction.html下找到,但是.. 。

  1. 我已经实现并测试了单个软件包应用程序包,所有这些都可以正常工作。
  2. 由于以下发现的问题,我的多个软件包和应用程序此时工作不正常: a)应用程序的主包调用在额外包中实现的函数,但这些函数似乎在那里不被识别。我甚至尝试使用包的开头的Needs命令在主包中显式调用它们但没有用。 * 我做错了什么? *额外的包都在帮助指示的应用程序文件夹中。 更具体地说:
  3. 主程序包和应用程序名为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 [?]的确切包声明,额外的包和带有我在这里提供的名字的引用包,让一切顺利进行,我非常感谢。

1 个答案:

答案 0 :(得分:4)

请尝试:

BeginPackage["OptMainFuncAll`",
      {"BasicSym`",
       "OptMainFuncAll`IntermFunct`",
       "QuadOptMainFuncAll`VolCandExt`"}
]

当前包名称是第一个参数,而第二个参数是它将依赖的包名称(上下文)列表。