转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/5754872.html

前段时间用终端和zerobrane运行torch的lua程序。zerobrane主要用于调试(虽说功能简单,但是还算可以用吧)。终端直接使用th xx.lua(torch安装的是luajit),zerobrane直接点击两个右箭头的“Execute the current project”。某天运行程序时,突然提示:

File.lua:: Failed to load function from bytecode: (binary): cannot load incompatible bytecode
[C]: in function 'error'
...program/torch/install/share/lua/5.1/torch/File.lua:: in function 'readObject'
...program/torch/install/share/lua/5.1/torch/File.lua:: in function 'readObject'
...program/torch/install/share/lua/5.1/torch/File.lua:: in function 'readObject'
...program/torch/install/share/lua/5.1/torch/File.lua:: in function 'load'

程序崩溃的地方是调用‘dofile’,在其内部出错的地方是load函数(之前有save成.t7文件,判断该文件存在,则直接load,否则重新生成该文件)。

当时很奇怪。后来发现:

1. 如果使用zerobrane运行程序进行save操作,再使用zerobrane运行程序,进行load操作,则不会崩溃。

2. 如果删除该.t7文件,使用终端运行该程序,save成t7文件,再使用终端运行程序,此时load该t7文件,也不会出错。

3. 如果使用zerobrane进行save,再使用终端load文件,或者使用终端save,再使用zerobrane进行load,则程序都会在load处崩溃。

个人猜测,原因应该是终端使用th命令和zerobrane直接运行文件所使用的解释器(interpreter)不同导致的。但是更改了一下,暂时没有成功。。。额,以后再说吧。。。

目前解决方法就是:单一使用zerobrane或者终端的th来运行程序。不要交替的使用。

ps:

1. 终端中运行th,信息如下:

运行lua,信息如下:

运行luajit,信息如下:

2. 后来测试过,如果save比较简单的数据,使用另一种方式load的话,能成功载入数据;如果save比较复杂的东西,比如有函数之类的,貌似就出问题了(此处不太确定)。

(原)lua提示cannot load incompatible bytecode的更多相关文章

  1. bundle install 安装的 gem 提示 cannot load such file

    /usr/local/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load ...

  2. [转]Navicat for oracle 提示 cannot load oci dll,193的解决方法 orcale 11g

    Navicat for oracle 提示 cannot load oci dll,193的解决方法   内网有一台windows server 2012,安装了Navicat 11.1.8 连接or ...

  3. Navicat Premuim远程连接oracle 提示 cannot load oci dll,193的解决方法

    转载:http://blog.51cto.com/xiao987334176/1640991 内网有一台windows server 2012,安装了Navicat 11.1.8 连接oracle的时 ...

  4. Navicat 连接 Oracle数据库 提示 cannot load OCI DLL 的解决

    一.32位系统下 cannot load OCI DLL,126 解决方法:工具->选项->OCI 选择oracle安装目录下bin里面的oci.dll 二 .在64位系统下安装了Orac ...

  5. c#调用ffmpeg嵌入srt/ass字幕提示Cannot load default config file...

    c#调用ffmpeg嵌入srt/ass字幕提示 Fontconfig error: Cannot load default config file[Parsed_subtitles_0 @ 00000 ...

  6. virtualbox 启动虚拟机提示Cannot load R0 module

    Cannot load R0 module C:\Program Files\Oracle\VirtualBox/VBoxDDR0.r0: SUPR3LoadModule: supLoadModule ...

  7. [Lua]基于cc.load('mvc') .ViewBase索引资源方案

    local MainScene = class("MainScene", cc.load("mvc").ViewBase) MainScene.RESOURCE ...

  8. 聊聊LuaJIT

    JIT 什么是JITJIT = Just In Time即时编译,是动态编译的一种形式,是一种优化虚拟机运行的技术. 程序运行通常有两种方式,一种是静态编译,一种是动态解释,即时编译混合了这二者.Ja ...

  9. Cocos2d-x使用Luajit将Lua脚本编译成bytecode,启用加密

    http://www.cocoachina.com/bbs/read.php?tid=205802 lua脚本进行加密,查了一下相关的资料 ,得知lua本身能够使用luac将脚本编译为字节码(byte ...

随机推荐

  1. No1_7.类和对象_Java学习笔记

    一.面向对象的特点:a.封装:封装是面向对象的核心思想,将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想: 保证了类内部数据的完整性,应用该类的用户不能轻易直接操纵 ...

  2. ubuntu12.04 安装 ruby1.9.3

    sudo apt-add-repository ppa:brightbox/ruby-ng sudo apt-get update sudo apt-get install ruby rubygems ...

  3. PHP基础语法随记

    PHP常量: 预定义常量: PHP自身也定义了大量的预定义常量,可以使用get_defined_constants()来查看,比较常用的预定义常量有: PHP_OS:PHP系统. PHP_VERSIO ...

  4. python之简单入门01

     python简单的介绍使用: 一.个人感觉写Python程序,最好用的工具就是pycharm了,自动补全功能可以满足大多数不太喜欢记忆的人群: 安装pycharm之前应该先安装python解释器,目 ...

  5. 在Fedora 20下编译安装QEMU

    由于OpenStack的流行,现在越来越多的人关注QEMU,最近发行了新版本1.7,下面就说Fedora下的安装过程: 首先需要安装基本的编译软件和git sudo yum install gcc m ...

  6. PHP中$_GET['name']与$_POST['name']变量直接用变量名$name的php配置

    php中,可以直接使用参数名称作为变量来接收get或post的传参,条件是php.ini中register_global设置成On 另外一种方法: if(!ini_get('register_glob ...

  7. 考查嵌入式C开发人员的最好的16道题

    约定:   1) 下面的测试题中,认为所有必须的头文件都已经正确的包含了    2)数据类型             char 一个字节 1 byte        int 两个字节 2 byte ( ...

  8. 返回本机的mac物理路径

     /// <summary>         ///    返回本机的mac物理路径         /// </summary>         /// <return ...

  9. Duff策略

    Tom Duff首先在C语言中提出了展开循环的构想,所以这种模式被称之为Duff策略.Duff策略背后的思想是每一次循环完成标准循环的1-8次.首先通过数组值得总数除以8来取定循环次数.Duff发现对 ...

  10. HDU4171--bfs+树

    第一开始想成了DP.尼玛后来才发现只有N条边,那就简单了.. 从起点S遍历整棵树,从某点跳出来回到终点T,问最短路长度.然而从某点跳出时走过的路径是一个定值.... 长度为整棵树的边长和sum*2-d ...