转载请注明出处:

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. Android成长记(1)-----android环境搭建与adb shell 命令

    整理一下学习android一步一步存下来的自己总结或是从网上摘抄的比较不错的文档,电脑要上交了,最舍不得的就是自己积累的这么点东西了,所以决定发布到黎梓小站,以供大家一起学习以及自己日后忘记了也有地方 ...

  2. 解决django关于图片无法显示的问题

    http://python.usyiyi.cn/django/index.html http://m.blog.csdn.net/blog/qingyuanluofeng/44877399 http: ...

  3. C# txt文件读写

    //读取文件内容 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. ]; ]; public void Read() { try { FileStream fil ...

  4. js判断上传文件的类型和大小

    //检测文件大小和类型 function fileChange(target){ //检测上传文件的类型 if(!(/(?:jpg|gif|png|jpeg)$/i.test(target.value ...

  5. 转载收藏之用 - 微信公众平台开发教程(七):解决用户上下文(Session)问题

    从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Co ...

  6. hdu 1255 覆盖的面积

    http://acm.hdu.edu.cn/showproblem.php?pid=1255 #include <cstdio> #include <cstring> #inc ...

  7. 负载均衡 > 常见问题

    证书管理相关问题 常用证书申请流程 1.本地生成私钥:openssl genrsa -out privateKey.pem 2048 其中privateKey.pem为您的私钥文件,请妥善保管. 2. ...

  8. redo、undo、binlog的区别

    在MySQL中,redo.undo.binlog经常见,但很容易混淆这三者.   redo undo binlog 作用 保持事务的持久性 帮助事务回滚及MVCC的功能 进行Point-In-Time ...

  9. 2 _RESETFUL介绍

    2.2 CURL 命令的讲解: 1.就是以命令的方式来执行HTTP 协议的请求的工具 2.可以通过CURL 操作HTTP的GET/POST/PUT/DELETE方法 jrhmpt01:/root# c ...

  10. CentOS下安装无线网卡驱动 (转)

    1. 确定自己的网卡和内核版本:lspci | grep Network  #根据输出的信息确定网卡的型号.uname -a             #确定内核版本 2. 配置yum使用RPMForg ...