精华内容
下载资源
问答
  • lua 编译 C模块

    千次阅读 2012-12-13 15:47:04
    两个问题: 1. 动态连接库 编译时, 调用静态连接库的东西 ,然后链接 静态连接库 OK  2. lua 编译 C模块是,出现 x64 X32, fPIC的问题时, 需要把 lua lib(.a)...因为编译 luaC模块时,需要编译成 so,而 c

    两个问题:  

    1.  动态连接库 编译时, 调用静态连接库的东西 ,然后链接 静态连接库 OK

            2.  lua 编译 C模块是,出现 x64 X32, fPIC的问题时, 需要把 lua lib(.a)重新编译一遍(fPIC)的方式。


    fPIC  可以用于 静态连接库 和动态连接库的编译。


    原理:

    因为编译 lua 的C模块时,需要编译成 so,而 c模块又依赖 liblua.a,

    链接 静态库时,必须吧所有代码copy报自己的模块中

    所以 liblua.a中的代码要想存在于c模块中,必须使用-fPIC重新编译。

    即:

    最终代码中存在两部分: 自己写的代码 + lua.a的代码; 最终代码是动态连接库,所以必须将liblua.a 编译为fPIC的静态连接库


    所以: 如果编译的C模块不是在 lua的解释器中,使用require 来loadlib,则可以不需要fPIC的方式编译liblua.a

    case 为:

                       C--->  main start   --call c module->[ lua.script start - ----Use the module code------->  --lua.script -end ]---> main end

    这种case下可以直接编译静态链接库,不需要fPIC


                        

    展开全文
  • lua 编译成动态库(.so)

    千次阅读 2014-01-11 16:08:01
    修改lua5.2.1 源文件src 目录下的Makefile LUA_SO= liblua.so ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO) $(LUA_SO): $(CORE_O) $(LIB_O)  $(CC) -o $@ -shared $? -ldl -lm

    在src目录下的Makefile添加下面规则:
    LUA_SO=liblua.so
    ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
    $(LUA_SO): $(CORE_O) $(LIB_O)
         $(CC) -o $@ -shared $? -ldl -lm(这一行前是一个tab)
    最后在顶层Makefile修改TO_LIB
    TO_LIB= liblua.a liblua.so


    展开全文
  • 通过luac编译lua脚本

    2016-08-20 16:21:00
    这个程序是用来将lua文件编译成二进制码, 使用方法很简单,在控制台调用, luac.exe -o a.out a.lua 其中a.out是输出文件名,a.lua是输入的lua脚本 我这里写一个批处理文件,将脚本文件放在批处理文件...

    在lua官网下载一个lua的release包,里面有已经编译好的lua启动文件(包括lua.exe),其中还有luac.exe,

    这个程序是用来将lua文件编译成二进制码,

     

    使用方法很简单,在控制台调用,

    luac.exe -o a.out a.lua

    其中a.out是输出文件名,a.lua是输入的lua脚本

     

    我这里写一个批处理文件,将脚本文件放在批处理文件同一目录运行即可:

    for /r %%v in (*.lua) do luac -o %%v %%v

     

    转载请注明出处,from 博客园HemJohn

     

    转载于:https://www.cnblogs.com/HemJohn/p/5790668.html

    展开全文
  • 2.将lua源码编译成静态文件 (我这里只编译了lua链接库,lua编译器和lua解释器暂时不需要) 新建一个VC++的win32控制台工程,命名为Lua53,添加【新建筛选器】,再把lua源码.h和.c文件添加进去,(除去lua...

    学习怎么在c++中引用lua,并实现在c++中调用lua文件

    工具:lua源码,vs2013

    1.下载lua源码(地址:http://www.lua.org

    2.将lua源码编译成静态文件

    (我这里只编译了lua链接库,lua编译器和lua解释器暂时不需要)

    新建一个VC++的win32控制台工程,命名为Lua53,添加【新建筛选器】,再把lua源码.h和.c文件添加进去,(除去lua.c和luac.c文件),点击生成解决方案,编译通过即可,可在E:\Download\lua532_second\Debug中查看静态文件

     

    3.下面是自己写好的c++调用test.lua文件,实际就是操作虚拟栈

    以下是test.lua文件

     

    4.注意事项,因为是c和c++混编,因为代码中cpp文件较多,所以选择在存在c语言头文件时需要用到extern “C”

     

    5.结果

     

     

    写好的cpp文件,需要设置编译包含目录,设置 附加库目录,设置 附加依赖项

    展开全文
  • 项目要求lua加密脚本,有关调查的相关信息 ,学习lua自己可以使用luac编译成字节码脚本(bytecode)启用加密,我试了一下。确实是可行。 以下是本机lua编译字节码解释器: 1、创建一个名为1.lua文件,只有一个字...
  • Lua编译 1、编译Lua为动态库(不用静态库,影响C++编译速度) 2、建立Lua编译器项目 3、编译Lua库为了以后对其扩展(也可以直接下载库)     步骤: 1.建立一个win32的空项目,并且在win32的向导里面点击选定...
  • bin目录中lua.exe运行 luac.exe编译成lua字节码 2.基本数据类型 整数,小数,布尔值(true false) 3.局部变量 local 4.复杂数据类型 字符串 表 函数对象 --------字符串 字符串对象就是指向一串文字...
  • lua5.1.5编译

    2015-01-23 14:14:23
    编译lua5.1.5 用VC6编译方法 1 编译库文件。 新建一个静态库,将src下的文件添加到项目,并将... 然后编译成lib文件。 2 编译解释器 新建控制台项目,将src下的文件添加到项目,并将所有.c文件的后缀名改成.cpp使用C
  • 虽然我们把Lua当作解释型语言,但是Lua会首先把代码预编译成中间码然后再执行(很多解释型语言都是这么做的)。在解释型语言中存在编译阶段听起来不合适,然而,解释型语言的特征不在于他们是否被编译,而是编译器是...
  • 下载解压后bin目录中lua.exe运行 luac.exe编译成lua字节码2.基本数据类型 整数,小数,布尔值(true false)3.局部变量 local4.复杂数据类型 字符串 表 函数对象--------字符串 字符串对象就是指向一串文字,它也是一...
  • 生成dll 建一个空的dll工程,然后倒入源文件和头文件,添加def并在配置里设置,删除lua.cluac.c, 并且在配置里生成文件设置为不依赖dll的模式,然后编译就行了
  • 当你发布lua时,你或许...这个程序称做luac.exe,把lua文本文件“编译二进制的文件。这样就可以让别人更难知道你的游戏是如何运行的,采用了什么技术。 当写好一个lua文件后,可以通过一个典型的编译命令去“...
  •  配置src目录下的Makefile文件在 lua-5.0.2/src/Makefile 文件中, 顶行加入如下字符.LUA_SO=liblua.soALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)$(LUA_SO): $(CORE_O) $(LIB_O) $(CC)...
  • 这个程序称做luac.exe,把lua文本文件“编译二进制的文件。这样就可以让别人更难知道你的游戏是如何运行的,采用了什么技术。 当写好一个lua文件后,可以通过一个典型的编译命令去“编译”这
  • 编译lua动态库

    2017-11-14 15:00:00
    编译lua解释器的时候要依赖于lua动态库来编译,不能编译成静态的,否则在调用c模块的时候就会出现multiple Lua VMs detected 的错误。 multiple Lua VMs detected,什么意思呢,就是说有多个虚拟机加载,起冲突了。...
  • lua 自己编译源文件

    2015-05-13 23:16:00
    1,下载源代码 http://www.lua.org/download.html ...3,将.c(除去lua.c)和.h文件加入到工程 4,lua源代码文件中的lauxlib.h、lua.h、luaconf.h、lualib.h取出 5,将得到的库加入工程 6,测试 extern "C" {#inc...
  • Lua在Windows下编译

    千次阅读 2018-01-30 14:47:11
    下载Lua源代码 https://www.lua.org/download.html 也可以直接下载二进制。...luac.c编译成编译器 其他的都编译成需要的动态库或者静态库 2.常见vs工程,添加相应的文件。其中连个exe程序添加编译好的静态库链
  • 最近一直在搞lua的源码编译,同时有需求将c代码编写成lua可以调用的动态链接库。尽管网上已经有好多人做过类似的工作了,但是我自己做起来还是感觉很吃力。今天花了一天时间终于搞定了。所以把今天踩的坑记录一下。 ...
  • lua代码动态编译详解

    2020-09-07 18:52:11
    lua字节码:提高加载速度,lua源码加载到内存中,要先编译成字节码,然后才去生成机器指令,而lua字节码直接就可以拿去生成机器指令 程序运行通常有两种方式:静态编译和动态解释,即时编译混合了二者。即时编译是...
  • 安装codeblock编译lua

    2018-07-01 15:23:52
    1.下载内置minGW版本的安装包进行安装2....下载lua源代码,在code block中创建一个静态project命名为lua,把main.c删除掉,右键点击项目名,选择Add files,选中lua源码中所有后缀为.c的文件(除了lua.c)打开,...
  • Lua编译器及LuaC相互调用

    千次阅读 2015-03-18 14:32:49
    Lua编译器及Lua与C相互调用 2015-03-17 何鹏     Lua是一门小巧强大的编程语言,很多开发工具都对Lua源码进行了封装,...一、Lua编译成解释器 1. 官网上下载源码:http://www.lua.org/ 2. 用VS2012新建一个解
  • lua文件二进制编译

    2014-05-28 19:25:58
    这个程序称做luac.exe,把lua文本文件“编译二进制的文件。这样就可以让别人更难知道你的游戏是如何运行的,采用了什么技术。 当写好一个lua文件后,可以通过一个典型的编译命令去“编译”这个文...
  • 用devcpp编译lua

    2006-12-13 22:42:00
    先下载lua代码.第一种方法:直接用mingw的工具make mingw,这种得不到编译器.第2种方法:先把其中29个c文件加入...第三步仍然建立控制台工程,加入luac.c和print.c,用liblua.a编译成luac.exe,这是编译器,用来把lua文件...
  • Nginx的nb之处就不说了,lua也是一个小巧的脚本语言,由标准C编写而,几乎可以运行在所有的平台上,也非常强大,其他特性请自行度娘。nginx_lua_module是由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的...
  • Lua代码翻译及预编译字节码

    千次阅读 2017-04-04 17:37:16
    Lua在早期几乎都是被用来嵌入到其它系统中使用,所以源代码通常被编译成动态库或静态库被宿主系统加载或链接。但随着Lua的第三方库越来越丰富,人们开始倾向于把Lua作为一门独立语言来使用。Lua的官方版本里也提供了...
  • Linux 自带了资源编译工具 xxd,可将任意文件编译成 c 源代码文件。 常用命令格式: xxd -i 源文件 目标文件 CMake应用示例1(将 test.lua 编译为 test.cpp): # test.lua 编译成 cpp 文件 exec_program...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 272
精华内容 108
关键字:

lua编译成c