lua环境的配置以及c++调用lua的简单例子

Lua在vs2013的配置环境以及C++如何调用lua lua在vs2013下的配置环境,以及c++调用lua 阅读详情

    虽然上年暑假的时候,我看完了《lua程序设计》,那时候主要是把主要概念背熟,还有把几个面试要问的问题弄明白了,但实际上却很少写代码,写的lua代码可能都不超过1000行,哎,怪不得,才半年多,几乎所有东西都忘光了!

    好吧,那现在就重新学一遍吧!这次就重在实践!而且那时候都是在VS2010上写代码的,由于趁着请假做毕业设计的时间,我学会了基本使用GCC和make,这次就可以脱离VS写代码了,直接用GCC编译链接程序,自己可以完全掌握代码编译链接的流程了。作为一个程序员,我还是觉得你还是有必要懂GCC、make的使用,以及对linux有了解。

    我没有实习之前,以为一个程序能运行起来就可以啦,管它用VS还是GCC,但是工作后,发现周围使用的工具有XCODE、VS、还有GCC和make的使用,XCODE和VS是很好的IDE,但是当你在unix、linux类的环境下安装个工具,编译几行代码,那么问题就来了,如果你不会GCC、make,只是按照安装指导来执行gcc -Wall -O2 xxx.cpp -lxxx、make install等等,你就不会疑惑吗?更有的是出现一点点问题,你根本就不知道如何下手,只会搜谷歌、百度,寻求帮助。而且你一直使用IDE工具,没有写过makefile文件,那么你对代码是如何编译链接的,代码中的相互依赖关系,你可能也不会很清晰。最后,我还是觉得命令行和可视化工具的使用会影响你的思维方式。以前没有使用linux,我根本没觉得硬盘目录是什么,用户目录是什么?可能是我个人的问题!但是当我对linux有一点了解后,就会觉得用户就是在/home目录下的一个账号,在windows下就是c:\Users下的账号。硬盘其实是挂在/dev下面的一个链接。等等,当然这些都是我个人的看法,嘻嘻>..<。

    如果在linux环境下,可以lua官网上下载最新的版本来进行编译链接,官网地址--http://www.lua.org/download.html。此时,就需要你熟悉make了,可以选择自己的平台make,平台如图1。你可以tar -zxfv xxx.tar.gz,cd到解压后的目录,然后直接执行make linux,直接make install,make linux是编译链接好库,make install 是把编好的库(liblua.a)复制到/usr/local/lib下面和把lua.h、lua.hpp、lualib.h、laulib.h、luaconf.h复制到/usr/local/include下面和把lua、luac复制到/usr/local/bin下面,这些都可以冲Makefile下面看到。

图1



   

    在mac下面,编译lua方法也是如上。如果在想在XCODE中调用,引用了头文件和库就可以了,大概思想和下面的VS中的使用一样。

    在windows下使用linux,可以使用mingw或者cygwin来模拟linux的环境,这里就使用cygwin,在安装cygwin是默认安装了lua的标准库和头文件,你可以在/usr/bin/下看到lua.exe,在/usr/lib/下看到liblua.dll.a、liblua5.1.dll.a,在/usr/include/下有lua.h、lua.hpp、luaconf.h、lauxlib.h、lualib.h、当然你可以在cygwin setup中输入lua,选择lua其他的库。如图2。

图2


    在windows环境下,在VS中,也可以直接引入上面说的头文件的路径和库的路径,那么就可以直接直接写了。你也可以直接安装一个luaforwindows,它的安装目录就有include和lib目录,你直接在VS中包含这两个路径也可以直接写了,它方便你不用自己编写库。luaforwindows自带SciTe编辑器,可以直接运行和调试lua。luaforwindows安装好的目录如图3。

图3




      环境配置好了之后,就可以直接写代码了。

      我这里是使用cygwin环境下,使用lua的。

      先创建一个hellolua.lua的文件,如代码1:

代码1

function hellolua()

    print("Hello Lua!")

end
 

    然后创建main.cpp,在c++中调用lua代码,如代码2。当然lua中也可以调用c++代码。

#include<iostream>
#include<lua.hpp>
/*
 *你也可以这样写
 * extern "C" {
 *  include "lua.h"
 *  include "lualib.h"
 *  include "lauxlib.h"
 * }
 * 这相当于把lua.hpp的内容写出来了
 */
int main(int argc,char* argv[])
{
   lua_State *lua_state=lua_open();
   luaL_openlibs(lua_state);//打开所有标准库
   
   //加载脚本文件,需要在程序目录
   luaL_loadfile(lua_state,"hellolua.lua");
   lua_resume(lua_state,0);

   //调用函数
   lua_getglobal(lua_state,"hellolua");
   if(lua_resume(lua_state,0))
   {
    std::cout<<lua_tostring(lua_state,1)<<std::endl;
   }
   //调用结束
   lua_close(lua_state);
   getchar();

  return 0;
}
    然后,在cygwin中利用g++来编译链接代码。如图4。

图4


   图4的警告,是因为开了-W选项提示的。

   你不要写成g++ -Wall -W  -llua main.cpp -o hellolua,这可能会报错错误--undefined reference to错误,如图5,这是因为,一个调用了定义在另外一个库中的函数的库应当被放在包含该函数代码的库的前面,否则一些编译器会报错。

图5

     最后执行hellolua.exe,结果如图6。

图6

    上面就是环境的配置以及C++调用lua的例子。学会了环境的搭建和基本调用后,你就可以随意些代码了!

    如需转载,请标明出处:http://blog.youkuaiyun.com/cbbbc/article/details/45049399

VC++6.0配置LUA环境和C++调用LUA的简单示例 VC++6.0配置LUA环境和C++调用LUA的简单示例一、VC++6.0配置LUA环境和C++调用LUA的简单示例LUA版本: 5.1.3   (http://www.lua.org下载lua 5.13源代码)编译lua 5.13源代码:(你可下载别人编译的,)配置LUA环境:工具→选项→目录,然后include files:见图(修改为你的LUA相应路径即可)library files:(同上)可执行文件:D:/PROGRAM FILES/LUA-5.1.3/LUA-5.1.3/BIN(可略)Test. 阅读详情

相关推荐

cocos2dx之C++调用Lua

一.c++调用Lua 1.引入头文件 #include "cocos2d.h" #include "CCLuaEngine.h" USING_NS_CC; using namespace std; extern "C"{ #include "lua.h" #include "lualib.h" #include "lauxlib.h" } 2.调用函数     lua_St

人生如游戏,不如做游戏, 7493

解决无法找到lua.hpp问题

在编译cartographer_ros时出现一个问题,找不到lua.hpp文件,具体问题如下: 在这个文件/usr/local/include/cartographer/common/lua.h中找不到lua.hpp文件,进入lua.h文件中查看#ifndef CARTOGRAPHER_COMMON_LUA_H_ #define CARTOGRAPHER_COMMON_LUA_H_ #inclu

sunyoop的博客 7584

C++ 调用 Lua 函数

Lua 作为一门脚本语言,可以作为 “配置文件”、“动态逻辑脚本” 等角色作用于宿主程序。1. Lua 会处理语法细节,后续维护简单,并且可以有注释。2. 可以编写逻辑,达到复杂的配置。如果我们的程序需要进行一些 “下发配置” 时,一般会考虑选择 “json”、“文件” 等形式。但是如果 “配置” 内容较为复杂,则可以考虑 Lua 了,具体可以查看以下分享。Github传送门(如果对你有所帮助或喜欢的话,赏个star吧,码字不易,请多多支持)如果觉得本篇博文对你有所启发或是解决了困惑,。

江澎涌的博客 1404

VS2015中编译lua.lib并运行lua程序,版本lua5.3.4

第一步下载Lua源码,可以从官网下载,是一个压缩包。 官网地址:http://www.lua.org/download.html。 然后解压,比如F盘根目录。 第二步VS中新建一个项目: 我选择的是VC++,win32控制台应用程序。 取名MyLuaProj,位置在F盘根目录。 然后确定,下一步,应用程序设置中选择静态库,不勾选预编译头-&gt;完成。 此时VS里会出现下图所...

燃尽的博客 6531

Lua与C/C++交互——Lua调用C/C++

Lua与C/C++交互——Lua调用C/C++ 0.简介          Lua(念“鲁啊”)作为一门发展成熟的脚本语言,正在变得越来越流行。它也可以作为和C/C++执行脚本交互的语言。并且Lua的整个库很小,我安装了最新的正式版Lua 5.1版本,而整个静态链接的lu

牧秦丶 1万+

Lua和C++交互:Lua调用C++类注册生成的Lua模块

这篇文章,属于Lua和C++交互的子篇章。总篇章地址:https://blog.csdn.net/qq826364410/article/details/88624824 Lua调用C++类注册生成的Lua模块 ①新建创建对象函数,调用lua_newuserdata,创建一个对象指针,指向new出来的新的对象。 ②新建成员方法,调用lua_touserdata,得到从lua中传入的对象...

qq826364410的专栏 4747

C++与lua(三)

main.cpp #include <stdio.h> #include "lua.hpp" #include <string.h> #include <string> #include <iostream> using namespace std; int main() { lua_State* pLua = luaL_newstate(); luaL_openlibs(pLua); char szTmp[512]; snprintf(sz

228

Lua脚本如何调用C/C++模块,Windows以及Linux版本演示

lua与c/c++的交互,已打包好测试用例涉及的动态库(.so,.dll)文件

QNBZ的博客 3125

Lua做为c++程序的配置文件

Lua做为c++程序的配置文件 介绍下Lua做为c++程序的配置文件的用法 大家可能习惯了用xml作为配置文件,其实很多时候我们也可以使用脚本作为程序的配置文件,这样程序既可以添加入脚本 又可以使用配置文件,作为一种脚本语言做配置文件自然可以,用lua的好处有几个方面, 1.是它天生和c++程序结合非常好。 2.这样可以减少整个工程的编译次数(所有配置文件共同的好处) 3.容易进行

兴趣是最好的老师 796

从ADRV9002到ADRV9003:手把手教你移植FPGA驱动,避开那些官方没说的坑

本文详细介绍了从ADRV9002到ADRV9003的FPGA驱动移植实战指南,重点解析了两者在硬件架构上的关键差异,如通道配置和DPD功能的移除。通过提供完整的移植步骤、调试技巧和性能优化建议,帮助工程师避开官方文档未提及的常见陷阱,实现高效驱动开发。

weixin_28738397的博客 175

动态库加载失败终极指南:从libbz2.so.1错误看Linux依赖管理本质

本文以经典的libbz2.so.1加载错误为例,深入剖析Linux动态链接库管理的核心机制。文章不仅提供从ldd检查、符号链接创建到LD_LIBRARY_PATH设置等实战解决方案,更系统性地讲解了动态链接器的寻库路径、版本管理及依赖问题预防策略,帮助开发者从根本上理解和掌握Linux依赖管理本质。

weixin_29212429的博客 447

Lua5.3.4测试代码

写了一点简单的程序测试学习一下Lua^_^,Lua做成了动态链接库,使用C++调Lua,里面还有一个调C写的DLL,也就是C++调用Lua虚拟机,然后Lua再调用C写的DLL2333 luatest.cpp #include #include using namespace std; #define execute //#define load //#define registercfu

SSS 1062

ExcelVBA批量添加PDF文件

如图1所示,"BOM-01.xlsx"工作簿中的Sheet1工作表根据B列图号单元格中的内容,在图2所示的文件夹中找到对应的PDF文件,然后嵌入到相应的N列,双击N列中所示的图标,会打开PDF文件,是源文件的副本,即删除源文件,也可以打开N列的文件。 图1 根据B列的图号在N列嵌入对应的PDF文件 图2 PDF文件 图3 文件格式 Sub 导入文件() Ap...

qq389445046的博客 5577

c++调用lua

VC要编译LUA文件必须先配置VC编程环境。。我用的是VC6.0,lua 5.1.4版   首先将lua的"lua.h"  ,"lualib.h", "lauxlib.h" 这三个放在vc程序include文件夹下   然后将lua的lua5.1.lib放在lib文件夹下就OK了       下面看看我写的一个小例子:   a.cpp   #include "windows

靠别人不如靠自已。 1166

『n8n』初识界面

在首页(Overview),我们和 n8n 最常打交道的是“Workflows”、“Credentials”、“Executions”这几个面板(其实后面2个也会用到,但初学阶段可以先不管)。Workflows 面板可以看到我们创建的所有工作流,所以要给工作流起一个一眼看上去就知道是干嘛的名字。

weixin_39415598的博客 1460

Hodgkin-Huxley Model

介绍了经典的动力学模型:HH Model

weixin_73557167的博客 2474

详解LUA开发工具及其环境配置

转自http://www.61ic.com/Mobile/iPhone/201108/36960.html LUA开发工具及其环境配置是本文要介绍的内容,主要是来了解并学习lua开发工具的使用和环境的配置,第一次接触LUA的话,就跟本人一起学习吧。看我能不能忽悠到你。 LUA是语言,那么一定有编写的工具。第一次学,那么就用LFW(lua for windows)。我相信你的电脑系统是Windo...

weixin_30478757的博客 83

orchestrator常见问题汇总

默认的取集群名称的规则为参数决定 ,默认为取主实例 主机名 ,然后按分隔符"."之前的第一段字符为集群别名,这样在集群主库宕机后,新提升的从库的服务器名称为了新的集群名,宕机的主库成为单独的一个集群。1 默认配置文件中设置了匹配规则 ,只有被匹配的主机名才能进行故障恢复,所以该参数需要设置为 "*"3 另外配置文件中还有许多发现,恢复的忽略规则(Ignore) 这些参数也是需要注意的。由于LVS的后端的RS为IP地址,如果直接显示主机名,LVS的接口方法将无法工作。只传入脚本中用到的参数,不要多传入。

DBA之路的博客 829

Lua调用C++

Lua调用C++Lua调用C++具体过程为:Lua部分的代码如下:运行结果程序运行时栈內变化回到C++调用Lua上述是读取过程,然后可以在C++中修改table中的值lua调用C++函数一、C++的函数定义二、注册函数三、C模块四、luaL_openlibs源码解析 Lua调用C++ 原文链接:https://blog.csdn.net/weixin_42111061/article/details/110310412 接上一篇文章:C++调用Lua 本文在上一篇文章的基础上,使用Lua调用C++。使用文

宁静致远的博客 5100

YOLOv11改进策略【模型轻量化】| 替换华为的极简主义骨干网络:VanillaNet

本文记录的是基于VanillaNet的YOLOv11轻量化改进方法研究。VanillaNet的极简主义在于无 shortcut 连接,并且在网络的每个阶段仅使用一层卷积,无额外复杂模块,仅通过自身简洁的架构设计和训练策略,实现有效地训练和优化。本文在替换骨干网络中配置了原论文中的、和11种模型,以满足不同的需求。

Limiiiing的博客 1725

《大数据最全面试题-Offer直通车》目录

做好这些不用担心试用期不通过:程序员入职新公司如何快速上手项目本人遇到大数据面试题和参考答案(超过1万字精华版)大数据面试英文自我介绍参考(万字长文)大数据运维应用场景面试题汇总及参考答案(持续更新)万字数据仓库面试题及参考答案数据仓库数据质量监控和处理方法最佳实践数据仓库建模方法万字详解Doris的3种数据模型详解和数据仓库每一层的模型选用大数据面试临阵磨枪不知看什么?看这份心理就有底了-大数据常用技术栈常见面试100道题最全Hive面试题2024年(2万字详解)Elasticsearch 面试题及参考答

大模型大数据攻城狮的专栏 2644

简单C++调用lua函数及C++和lua相互函数调用小例子

http://blog.csdn.net/ym012/article/details/7191932 //简单C++调用lua函数,改自网络 //test.cpp [cpp] view plaincopy #include   extern "C" {  #include "lua.h"  #include "lualib.h"  #include "lauxlib

~。~||| 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Qt、C/C++环境中内嵌LUA脚本、实现LUA函数的调用执行

LUA是一个脚本语言,由标准C编写而成,几乎在所有操作系统和平台上都可以编译、运行,可以很方便的嵌入到其他C/C++环境中,如Qt、VS2012等。一般的lua脚本文件的后缀为.lua,移植lua源码异常的简单,下载源码包后,直接编译即可,因为上面我们说过了LUA是用标准C编写的,所以几乎你常见的编程环境它都能编译LUA。下载最新版5.4.4版本,解压缩源码如下:将以上这些文件除了lua.c和luac.c加入到你的开发环境中进行编译,就算移植完成了!.........

^_^ 5220

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lua 调用 c++的最简单例子+lua咋调用C

文章目录Lua与C交互之函数注册1 实现实际操作的C函数2 实现Lua与C的数据转换函数canci Lua与C交互之函数注册 前面讲C与Lua交互的原理,讲到了Lua调用C的接口时, 需要C将函数通过注册机制注册到当前lua_State全局变量, 实例具体介绍怎么注册并调用到C的函数接口。 1 实现实际操作的C函数 static int add(int a, int b) { return a+b; } static int sub(int a, int b) { return a - b; } s

fgh123的博客 994

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

<10>Lua C/C++互相调用

先来说下大致脚本引擎框架,此次采用如下,即运行C++代码启动程序,然后加载Lua脚本执行! 1.基础 Lua脚本中只能调用 int (*lua_CFunction) (lua_State *L) 这种类型的C/C++函数; 所有的C/C++函数如果要给Lua进行调用,只能用这样的函数来封装; 那么在C/C++中怎么获得Lua传递过来的参数? 通过操作Lua...

jadeshu的博客 5246
上一篇: linux kill & jobs
下一篇: 编程世界中惯性的力量
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值