首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我得到"Symbol's value as a variable is void:...“当尝试设置lean-rootdir时?

"Symbol's value as a variable is void: ..."是Emacs编辑器中的一个错误消息,它表示在尝试设置lean-rootdir时,该变量的值未定义。

lean-rootdir是Lean定理证明器的一个配置变量,用于指定Lean源代码的根目录。当你尝试设置lean-rootdir时,Emacs会尝试读取该变量的值,但如果该变量未定义或未赋值,就会出现上述错误消息。

要解决这个问题,你可以按照以下步骤进行操作:

  1. 确保你已经正确安装了Lean定理证明器,并且Lean的根目录已经存在。
  2. 打开Emacs编辑器,并进入Lean模式。
  3. 使用M-x customize-variable命令来自定义变量。
  4. 输入lean-rootdir并按下回车键。
  5. 在弹出的界面中,为lean-rootdir变量设置正确的值,即Lean源代码的根目录的路径。
  6. 确认并保存设置。
  7. 重新加载或重新启动Emacs编辑器。

通过以上步骤,你应该能够成功设置lean-rootdir变量,并且不再出现"Symbol's value as a variable is void: ..."错误消息。

请注意,以上答案是基于一般情况下的假设,具体解决方法可能因个人环境和配置而有所不同。如果问题仍然存在,建议查阅相关文档或寻求专业人士的帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 方法实参是传值(pass-by-value)还是传引用(pass-by-reference)?

一直以来,认为在 Java 中传递方法实参传入的类型为基本数据类型,则传入的是值;传入的类型为对象,则传入的是引用。但是,这个观念是实际上是错误的。事实上,Java 始终传递值。...为什么这么说呢,让我们看一下如下代码: public static void main(String[] args) { ......// in main() that called myMethod } 相信大家都很容易理解这段代码,因为整型变量 x 传入 myMethod 传入了值,而不是引用,因此即使我们设置...经过一番查找,在这篇文章中得到了答案: Java is officially always pass-by-value....如果说拿 C++ 代码来表示的话,实际上是这个样子: void func(Object* raw); 传入的东西其实是对象引用,然后,Java 相当于会自行解引用,然后就得到了我们事实上传入的那个对象实例

93740

将 Mozilla 源码里的 winEmbed 工程移植到 VC

的计划是先弄清怎么用,让程序跑起来,然后再根据官方文档结构说明去定制,削减掉不需要的部分,折腾这个移植就花了不少时间,果断觉得应该跟大家分享之。废话不说,直接上过程。...这里用的 1.9.2rc1 版本,对应 firefox 3.6.X。...这时候实际上就可以跑 源码根/embedding/tests/winEmbed/winEmbed.exe 程序了,但是我们的目的是在 VC 下自己的工程里嵌入 Gecko,所以需要尝试将这个示例工程 winEmbed...(用官方提供的 xulrunner-sdk 里的程序来注册 GRE 并运行程序无报错) 至于为什么要做(3)和(4),且听我慢慢道来。...为什么要添加预编译选项 XPCOM_GLUE 为什么要添加预编译选项 XP_WIN 为什么要添加引入库 xpcomglue.lib,为什么要有(4)步骤 LIBS = \ $(DEPTH)/profile

73020
  • 将 Mozilla 源码里的 winEmbed 工程移植到 VC

    的计划是先弄清怎么用,让程序跑起来,然后再根据官方文档结构说明去定制,削减掉不需要的部分,折腾这个移植就花了不少时间,果断觉得应该跟大家分享之。废话不说,直接上过程。...这里用的 1.9.2rc1 版本,对应 firefox 3.6.X。...这时候实际上就可以跑 源码根/embedding/tests/winEmbed/winEmbed.exe 程序了,但是我们的目的是在 VC 下自己的工程里嵌入 Gecko,所以需要尝试将这个示例工程 winEmbed...至于为什么要做(3)和(4),且听我慢慢道来。...为什么要添加引入库 xpcomglue.lib,为什么要有(4)步骤 在 winEmbed/makefile 文件里,有 LIBS = \ $(DEPTH)/profile/dirserviceprovider

    95610

    visual studio code使用教程_visual studio code 权威指南 pdf

    变量未赋值(如),将插入其缺省值或空字符串。 varibale未知(即,其名称未定义),将插入变量的名称,并将其转换为「Placeholder」。...if:else}:表示匹配成功,并且捕捉括号捕捉特定序号的捕捉项成功,在捕捉项位置插入「if」所述语句;否则匹配成功,但捕捉括号捕捉特定序号的捕捉项失败,在捕捉项位置插入「else」所述语句;...{sn:-else}:表示匹配成功,但捕捉括号捕捉特定序号的捕捉项失败,在捕捉项位置插入「else」所述语句;{sn:else}:同 format 的后三条理解起来可能比较困难。...得到了增强。...}\n#define $1 ${2:value}\n#endif\t// ${1:SYMBOL}" }, "#include ":{ "prefix": "Inc",

    11.1K61

    JS原生方法原理探究(六)从 Babel 转译过程浅谈 ES6 实现继承的原理

    为什么要使用 void 0 而不是 undefined 呢?因为非严格模式下 undefined 可能会被重写,这里使用 void 0 更加保险。...为什么要做这个检查呢?后面我们再来解释。...从 extends 看 JS 继承这篇文章进行了解释,这里就不重复了)。 接着,调用 Object.create 设置父类的原型为子类原型的 __proto__。...这里我们会看到还传入了第二个参数,这个参数是子类原型的属性的特性描述对象(descriptor),我们对 constructor 属性进行了设置,将它设置为可写、可配置,同时利用 value 修复了因重写子类原型而丢失的...为什么设置 enumerable: false 呢?因为默认就是不可枚举的,不设置也行。

    1.1K20

    JS原生方法原理探究(六)从 Babel 转译过程浅谈 ES6 实现继承的原理

    为什么要使用 void 0 而不是 undefined 呢?因为非严格模式下 undefined 可能会被重写,这里使用 void 0 更加保险。...为什么要做这个检查呢?后面我们再来解释。...从 extends 看 JS 继承这篇文章进行了解释,这里就不重复了)。 接着,调用 Object.create 设置父类的原型为子类原型的 __proto__。...这里我们会看到还传入了第二个参数,这个参数是子类原型的属性的特性描述对象(descriptor),我们对 constructor 属性进行了设置,将它设置为可写、可配置,同时利用 value 修复了因重写子类原型而丢失的...为什么设置 enumerable: false 呢?因为默认就是不可枚举的,不设置也行。

    1.1K10

    java开发C语言编译器:消除冗余语句和把ifelse控制语句编译成字节码

    就可以得到变量b对应的Symbol对象,如果赋值语句形式为 a = 1; 那么ICodeKey.VALUE 就会把数值1返回给变量value, setter对应的是变量a的Symol对象,调用其setValue...我们要使用指令if_cmpge 也就是>=, 于是堆栈上两个数的值是大于等于关系,跳转到branch0所在位置的代码去执行,要不然继续往下执行,然后通过goto 直接跳转到out_branch0的位置去执行代码...embedded = embedded.substring(1); } public void emitBranchOut() { String s = "\n" +...如果if条件不成立就会跳转到else部分,我们用’branchX’来表示else部分代码分支开始之处,由于编译器在执行ifelse语句,IfStatementExecutor先会被执行,它执行时需要知道当前代码是...完成上面的代码后,我们尝试编译下面的C语言代码: void main () { int a; int b; a = 2; b = 3; if (a > 1 ) {

    74650

    50个常见的 Java 错误及避免方法(第一部分)

    “Incompatible Types” “Incompatible Types”是指定语句尝试将变量与类型表达式配对时发生的逻辑错误。 通常会在代码尝试将文本字符串放入到整型中出现,反之亦然。...“Variable Might Not Have Been Initialized” 方法中声明的局部变量未初始化时,就会发生这种错误。...“Operator … Cannot be Applied to ” 操作符用于非定义中的类型,就会出现此问题。 ? Java代码尝试在计算中使用类型字符串,通常会发生这种情况。...“Inconvertible Types” Java代码尝试执行非法转换,就会发生“Inconvertible Types”错误。 ? 例如,布尔值不能转换为整型。...“Missing Return Valuereturn语句包含不正确的类型,你将收到“Missing Return Value”的消息。例如,以下代码: ? 返回以下错误: ?

    2.1K30

    基本类型_TypeScript笔记2

    = Symbol(); // Symbol 变量声明 上面示例中的变量都是通过let声明的,其实有3种变量声明方式: var:函数作用域 let:块级作用域 const:块级作用域,常量(不允许修改...特殊的,建议开启--strictNullChecks选项,此时Undefined和Null只允许赋值给Void以及各自对应的类型 P.S.关于Never作为类型保护的应用,见Improve type safety...of name global variable 三.类型断言 可以通过类型断言告知TypeScript编译器某个值的确切类型: Type assertions are a way to tell the...someValue as string).length; 两种方式等价,但在JSX中只能用as type(尖括号语法与JSX语法冲突) 四.常用技巧 访问枚举key 实际上,TypeScript枚举类型建立了key-value...[Color["Green"] = 2] = "Green"; Color[Color["Blue"] = 3] = "Blue"; })(Color || (Color = {})); // 得到

    75620

    visual studio code使用方法_vscode自定义代码块

    变量未赋值(如),将插入其缺省值或空字符串。 varibale未知(即,其名称未定义),将插入变量的名称,并将其转换为「Placeholder」。...if:else}:表示匹配成功,并且捕捉括号捕捉特定序号的捕捉项成功,在捕捉项位置插入「if」所述语句;否则匹配成功,但捕捉括号捕捉特定序号的捕捉项失败,在捕捉项位置插入「else」所述语句;...{sn:-else}:表示匹配成功,但捕捉括号捕捉特定序号的捕捉项失败,在捕捉项位置插入「else」所述语句;{sn:else}:同 format 的后三条理解起来可能比较困难。...得到了增强。...}\n#define $1 ${2:value}\n#endif\t// ${1:SYMBOL}" }, "#include ":{ "prefix": "Inc", "body": "#include

    7.2K40
    领券