3

跟进这个关于包含源文件的问题。我包括一个包含一个名为的文件的教堂模块classes.chpl,但我当前的项目也有一个classes.chpl. 什么是正确的消歧模式?当我做

chpl -M/path/src

它记录了冲突,然后classes.chpl在当前目录中选择。我应该像本页那样编译模块以进行导出还是有其他模式。

== 更新 ==

目录结构看起来像

projA/alpha.chpl
     /classes.chpl

projB/beta.chpl
     /classes.chpl

每个项目取决于各自classes.chpl文件中的类。尝试编译projA我目前正在使用

chpl alpha.chpl -M../projB/

但这会导致冲突,因为它试图同时用于和projA/classes.cphl中的类。beta.chplalpha.chpl

4

1 回答 1

3

模块搜索路径技术说明中所述,Chapel 编译器按以下顺序搜索用户模块:

  1. 查看.chpl命令行上指定的文件
  2. 查看.chpl包含命令行中指定文件的目录中的其他文件
  3. 查看通过选项或环境变量.chpl指定的路径中的文件-MCHPL_MODULE_PATH

由于编译器classes.chpl使用规则 2 从项目目录中找到 ,而仅/path/src/classes.chpl使用规则 3 找到 ,因此它选择项目目录中的那个。要改为选择它/path/src/classes.chpl,您可以在命令行上指定它,以便使用规则 1 找到它。

chpl mainModule.chpl /path/src/classes.chpl

于 2017-11-20T23:25:11.917 回答