Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个名称空间的Clojure CLR_Clojure_Clojureclr - Fatal编程技术网

具有多个名称空间的Clojure CLR

具有多个名称空间的Clojure CLR,clojure,clojureclr,Clojure,Clojureclr,我编写了一个小名称空间来执行一些数据库操作,我想从另一个名称空间中使用它。通常将文件放在同一目录中,然后执行 (ns program (:require [other-ns :as other]) (:gen-class)) 这是所有必要的。然而,这在Clojure CLR中不起作用,编译器抱怨不知道其他ns。那么,正确的方法是什么呢?每个名称空间都有一个单独的程序集 [编辑]另一个例子 另一个.clj (ns another) (defn hello [name] (str "He

我编写了一个小名称空间来执行一些数据库操作,我想从另一个名称空间中使用它。通常将文件放在同一目录中,然后执行

(ns program (:require [other-ns :as other]) (:gen-class))
这是所有必要的。然而,这在Clojure CLR中不起作用,编译器抱怨不知道其他ns。那么,正确的方法是什么呢?每个名称空间都有一个单独的程序集

[编辑]另一个例子

另一个.clj

  (ns another)

  (defn hello [name] (str "Hello " name))
program.clj

  (ns program
    (:require [another :as a])
    (:gen-class))
我在repl中加载program.clj并得到以下消息:


FileNotFoundException无法在加载路径上找到另一个.clj.dll或另一个.clj。clojure.lang.RT.load(d:\work\clojure clr\clojure\clojure\Lib\RT.cs:3068)

我在同一目录filea.clj和fileb.clj中创建了两个文件。下面是filea.clj:

(ns filea)

(defn hi []
  (println "hi from filea"))
下面是fileb.clj:

(ns fileb
  (require [filea :as a])
  (:gen-class))

(defn -main []
  (println "hi from fileb")
  (a/hi))
然后我切换到这些文件所在的目录:

C:\temp\multi-ns>clojure.compile文件B 正在将文件B编译为。-59毫秒

当我运行它时,我看到:

C:\temp\multi-ns>C:\Tools\clojure-clr-1.3.0-Debug-4.0\fileb.exe 你好,来自fileb 你好,来自菲拉


您是在使用vsClojure还是在VS之外编写代码?

查看并检查您是否将每个名称空间/文件都放在了预期的位置。如果您无法找出错误所在,请显示(ns..)表单、它们在文件系统中的位置以及您看到的错误。您在首次编译项目时是否收到错误?尝试构建它,然后在REPL中加载program.clj。我能想到的另一件事是,你在使用新的vsClojure吗?我在使用vsClojure,可能是那里的一个bug。刚刚安装了vsClojure,做了与上面相同的事情,只是保留了program.clj文件,并在上面的示例中用它代替了fileb.clj。我没有问题。您可以发布您的代码或项目目录和名称空间的布局吗?