(Lua) C++ 加入 Lua 環境擴充應用強度
Lua 在網上有非常多的介紹,就是一個小而巧的語言,可以放入嵌入式系統
也可以在一般的應用上非常強大,這邊主要記錄如何讓Lua加入C++裡頭應用
Lua source code 是以 C 語言下去編寫,在網上查編譯完大概有200K的大小
對於應用在STM32F407 感覺綽綽有餘 F4的Flash大小有1M很足夠我使用。
主要想利用他在嵌入式系統上面應用,由於涉世未深還是先從PC上慢慢學習體驗
先從官方網站下載 Lua 5.3.5 目前的最新版本,第一步就是將 C code編譯成 DLL提供給 C++使用,我的環境是 Visual Studio 2013。
在開始編譯之前 先把 lua.c luac.c 兩個檔案移除,潛潛的描述一下原因的話我想是這2份檔案裡頭 都有一個 main ,所以我們不需要他們。
接下來把剩下的檔案複製起來放到 Visual Studio 相關的 Project。
我的習慣是 src 和 inc 分開放看起來比較整齊。
接下來很簡單在 VS 上頭開一個 empty (空的) Win32 project,在把屬性改成我們想要的dll 跟 靜態函式庫 (static Library)
在來將 inc 的路徑加入到屬性
在來就可以直接 build 一個想要的 Lua API 跟 lib了
在Release 資料夾中就可以找到需要的 Lua DLL,在將 DLL 加入需要的 VS 就可以暢快的學習Lua了
以下簡單的範例程式就可以測試Lua能否使用了
#include <stdio.h>
#include <stdlib.h>
#include <iostream> extern "C"{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
} using namespace std; int main(int argc, const char *argv[])
{
//cout << "lua test platform!!!" << endl;
string scriptnema = "main.lua";
int luaError;
lua_State *L = luaL_newstate(); if (L == NULL)
{
cout << "luaL_newstate faile !!!" << endl;
return -;
} luaL_openlibs(L);
luaL_dofile(L, scriptnema.c_str()); lua_close(L);
system("pause");
return ;
}
(Lua) C++ 加入 Lua 環境擴充應用強度的更多相关文章
- Gazebo機器人仿真學習探索筆記(五)環境模型
環境模型構建可以通過向其中添加模型實現,待之後補充,比較有趣的是建築物模型, 可以編輯多層樓層和房間,加入樓梯,窗戶和牆壁等,具體可以參考附錄,等有空再補充. 起伏地形環境構建可以參考之前內容:在Ga ...
- Windows安裝PHP環境
Windows安裝PHP環境的準備工作:httpd-2.2+php-5.4+mysql-5.5 第一步是安裝相對應的三個軟件,只要略懂一些英文單詞,安裝是沒有問題的,所以此處略過三個文件的安裝過程,直 ...
- [Apache] Apache 從 2.2 換至 2.4 httpd.conf 的調整筆記 (windows 環境)
原文地址: http://www.dotblogs.com.tw/maplenote/archive/2012/07/20/apache24_httpd_conf.aspx 整理一下 Windows ...
- 免安裝、免設定的 Hadoop 開發環境 - cloudera 的 QuickStart VM
cloudera 的 QuickStart VM,為一種免安裝.免設定 Linux 及 Hadoop,已幫你建好 CDH 5.x.Hadoop.Eclipse 的一個虛擬機環境.下載後解壓縮,可直接以 ...
- Lua 架构 The Lua Architecture
转载自:http://magicpanda.net/2010/10/lua%E6%9E%B6%E6%9E%84%E6%96%87%E6%A1%A3/ Lua架构文档(翻译) 十 102010 前段时间 ...
- 在 Windows 7 環境安裝 Python 2.6.6
目前 Python 的最穩定的版本是 2.7.3 及 3.2.3,因為 2.x 與 3.x 語法並不是完全相容,在各版本之間也有些差異,所以建議還是各自安裝需要的版本… 艾小克工作環境是使用 2.6 ...
- vJine 第三波 之 Lua 来袭 vJine.Lua
vJine.Lua vJine.Lua是Lua语言的C#封装库,可实现通过C#直接运行Lua脚本并与Lua脚本交互的功能. 1. 授权: MPL2.0 相关资源: nuget:(https://www ...
- IOSアプリケーション開発環境の構築
IOSアプリケーション開発環境の要求 1) IOSシステムの構造はそのようになっています: 2) ハードウエアの方の要求: コンピューター a) デュアルコアCPU b) 8 gメモリ(開 ...
- VC和VS调用Lua设置以及Lua C API使用。
通过c++调用lua 脚本, 环境VC++6.0 lua sdk 5.1.4 在调用前先认识几个函数.1.调用lua_open()将创建一个指向Lua解释器的指针.2. luaL_ope ...
随机推荐
- Vue.js基础知识
<!DOCTYPE html> <html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml&q ...
- 我们为什么要在 PHPStorm 中标记目录
问题来源 (1)要开发的项目位于PHPStorm打开的项目的二级目录下,使用PHPStorm来开发Laravel项目 提供的教程在代码自动定位和智能提醒方面,存在无效的情况: (2)使用gulp作为项 ...
- JQuery中button提交表单报TypeError: elem[type] is not a function jquery
错误: TypeError: elem[type] is not a function jquery 解决: 出现这种现象的原因是,提交的表单中,有标签的name,有以submit命名的 name中不 ...
- RocketMQ broker jvm 监控
1. jps 获取要监控broker jvm 的进程ID jsp 2. nohup 输出监控日志 nohup jstat -gc -t [pid] [interval] -t 会在每一条记录前加时间戳 ...
- 三)Wiring up jobs using triggers and the SchedulerFactoryBean
示例地址: https://github.com/witaste/quartz.git │ pom.xml │ └─src └─main ├─java │ └─cn │ └─zno │ └─job │ ...
- (网络流)Food -- hdu -- 4292
链接: http://acm.hdu.edu.cn/showproblem.php?pid=4292 Food Time Limit: 2000/1000 MS (Java/Others) Me ...
- Linq使用中的ToList注意事项
在使用Linq时,如果查询逻辑太复杂,可以拆分为多个Linq查询,下一个Linq在上一个Linq查询的结果上继续操作,这样逻辑清晰,又不会出错.但在使用ToList的时候需要注意,最常见碰到的错误是: ...
- [转载]MVC、MVP以及Model2(下)
通过采用MVC模式,我们可以将可视化UI元素的呈现.UI处理逻辑和业务逻辑分别定义在View.Controller和Model中,但是对于三者之间的交互,MVC并没有进行严格的限制.最为典型的就是允许 ...
- CentOS 7上搭建Docker环境
一.Docker介绍和安装 http://linux.cn/article-4340-1.html Docker 是一个开源工具,它可以让创建和管理 Linux 容器变得简单.容器就像是轻量级的虚拟机 ...
- Centos7.0安装KVM实践
1.背景 近日将主要精力放在Linux下测试MySQL Replication,宿主机安装了Centos7.0系统,需要安装三台虚拟机.因此,尝试了一下在Centos7.0上安装虚机机. 2.安装步骤 ...