开发者社区> 问答> 正文

ccl 指定HOME目录问题?报错

@FreeBlues 你好,关注你的博客有段时间了,记得那是去年去公司总部开年会在车站偶然发现你的博客的.感觉写的很好.

最近使用ccl和sbcl有个问题想请教下:
在windows下ccl默认的home目录是环境变量userprofile指定的,而sbcl的默认home目录是环境变量home指定的.对于sbcl修改环境变量没问题,但对ccl修改后总是报错:

我在网上找了一圈,没有具体的思路,请不吝指教!!

展开
收起
爱吃鱼的程序员 2020-06-22 18:12:19 518 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    很高兴遇到学习Lisp的同道!

    说说我的理解,不一定完全正确,仅供参考:

    在CCL中,它需要使用环境变量CCL_DEFAULT_DIRECTORY的值来确定CCL目录下的所有文件(如映像文件,库文件等等)的位置,这个位置就是CCL的home目录,所以一般来说,这个位置不推荐修改,因为你一修改它就找不到对应的文件了--尤其当你安装了CCL的多个不同版本时. 

    CCL会通过各种办法自动把Lisp文件的安装目录设置为 CCL_DEFAULT_DIRECTORY(比如在Lispbox中会使用  lispbox.bat脚本里的变量%LISPBOX_HOME%获取当前Lispbox的文件目录,然后在把该变量绑定给环境变量CCL_DEFAULT_DIRECTORY)

    当然了,理论上可以这么修改: 

    (setenv"CCL_DEFAULT_DIRECTORY""~/test-directory/") 

    把这条语句加入.emacs脚本中,重启一下emacs,在我的环境下发现此时执行 (probe-file"ccl:")返回了Nil,正常应该返回对应的ccl目录,如果你后续的程序用到"ccl:"(pathname中的逻辑主机)都会报错.


    引用来自“FreeBlues”的答案

    很高兴遇到学习Lisp的同道!

    说说我的理解,不一定完全正确,仅供参考:

    在CCL中,它需要使用环境变量CCL_DEFAULT_DIRECTORY的值来确定CCL目录下的所有文件(如映像文件,库文件等等)的位置,这个位置就是CCL的home目录,所以一般来说,这个位置不推荐修改,因为你一修改它就找不到对应的文件了--尤其当你安装了CCL的多个不同版本时. 

    CCL会通过各种办法自动把Lisp文件的安装目录设置为 CCL_DEFAULT_DIRECTORY(比如在Lispbox中会使用  lispbox.bat脚本里的变量%LISPBOX_HOME%获取当前Lispbox的文件目录,然后在把该变量绑定给环境变量CCL_DEFAULT_DIRECTORY)

    当然了,理论上可以这么修改: 

    (setenv"CCL_DEFAULT_DIRECTORY""~/test-directory/") 

    把这条语句加入.emacs脚本中,重启一下emacs,在我的环境下发现此时执行 (probe-file"ccl:")返回了Nil,正常应该返回对应的ccl目录,如果你后续的程序用到"ccl:"(pathname中的逻辑主机)都会报错.


    引用来自“无很”的答案

    引用来自“FreeBlues”的答案

    很高兴遇到学习Lisp的同道!

    说说我的理解,不一定完全正确,仅供参考:

    在CCL中,它需要使用环境变量CCL_DEFAULT_DIRECTORY的值来确定CCL目录下的所有文件(如映像文件,库文件等等)的位置,这个位置就是CCL的home目录,所以一般来说,这个位置不推荐修改,因为你一修改它就找不到对应的文件了--尤其当你安装了CCL的多个不同版本时. 

    CCL会通过各种办法自动把Lisp文件的安装目录设置为 CCL_DEFAULT_DIRECTORY(比如在Lispbox中会使用  lispbox.bat脚本里的变量%LISPBOX_HOME%获取当前Lispbox的文件目录,然后在把该变量绑定给环境变量CCL_DEFAULT_DIRECTORY)

    当然了,理论上可以这么修改: 

    (setenv"CCL_DEFAULT_DIRECTORY""~/test-directory/") 

    把这条语句加入.emacs脚本中,重启一下emacs,在我的环境下发现此时执行 (probe-file"ccl:")返回了Nil,正常应该返回对应的ccl目录,如果你后续的程序用到"ccl:"(pathname中的逻辑主机)都会报错.


    谢谢!明天试试!好梦~~~

    补充一下,如果想换一个目录安装,在安装quicklisp时自己指定一个安装目录就可以了

    (quicklisp-quickstart:install:path"这里是准备安装的目录")

    quicklisp升级到最新版本,执行下面这条语句

            
             
              (ql:update
              
               -
               
                client)
               
              
             
            

    引用来自“FreeBlues”的答案

    补充一下,如果想换一个目录安装,在安装quicklisp时自己指定一个安装目录就可以了

    (quicklisp-quickstart:install:path"这里是准备安装的目录")

    quicklisp升级到最新版本,执行下面这条语句

               
                
                 (ql:update
                 
                  -
                  
                   client)
                  
                 
                
               

    不必客气,问题搞定就好,我也顺便了解了quicklisp的安装过程 

    2020-06-22 18:12:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载