歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Lua與C++交互初探

Lua與C++交互初探

日期:2017/3/1 9:19:47   编辑:Linux編程

自從學習了lua這個腳本語言之後,無時不想著將他與c/c++聯系起來,看看他真正的威力。奈何水平有限,網上找的代碼無論怎樣都無法運行成功。我知道是我少了某一步但是又不知道到底少了什麼,於是就在各大博客、網站、論壇不斷的摸索測試。我也不知道花了多長時間。總之在今天測試成功了。我把我測試遇到的問題和解決過程貼出來供大家參考。

Lua 語言 15 分鐘快速入門 http://www.linuxidc.com/Linux/2013-06/86582.htm

Lua程序設計(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htm

Lua程序設計(第二版)閱讀筆記 http://www.linuxidc.com/Linux/2013-03/81834.htm

NetBSD 將支持用 Lua 腳本開發內核組件 http://www.linuxidc.com/Linux/2013-02/79527.htm

CentOS 編譯安裝 Lua LuaSocket http://www.linuxidc.com/Linux/2011-08/41105.htm

Programming In Lua 高清PDF中文版 http://www.linuxidc.com/Linux/2015-05/117362.htm

如何配置一套優雅的Lua開發環境 http://www.linuxidc.com/Linux/2015-10/124397.htm

一、lua環境的搭建

建議去網上下載luaforwindow,這是一款跟眾多window系統的軟件一樣,安裝起來簡單方便,一路點next就能搞定了。而且他還包含了有用的與lua有關的基本工具

他包括以下組件:

Lua(Command Line):lua的一個命令行編輯器。簡單輕便,習慣命令行編(zhuang)輯(bi)的可以試試。

Lua Examples: 包含lua使用的一些例子。

LuaForWindows Documentation :LuaForWindows這款軟件的一些說明

QuickLuaTour : lua快速入門向導,沒什麼用,看看就好

SciTE:lua的一個不錯的文本編輯器。可以在裡面測試一些lua代碼,可以運行測試。前提是要先保存文件在運行,否則他沒有任何反應。別問我是怎麼知道的,心塞塞

Documentation:裡面包含lua的幫助文檔,最有用的就是他了吧。

安裝好後Lua的環境就算是搭建好了。我們用命令行簡單來測試一下:

Ok,木有問題

二、VS環境配置

這一步是最重要的,一開始我是去lua官網下載的源文件再把他們添加到vs項目,雖然編譯是沒有問題了,但是在測試運行的時候鏈接還是出現了問題。很明顯我是少了什麼東東。後來我改用下面的方法解決了問題。

選中項目,右鍵->屬性->定位到VC++目錄項

在"可執行文件目錄"裡添加上lua的安裝目錄。過程如下:

定位到Lua的安裝文件夾,我的是:

確定後返回

用同樣的步驟,將"lua安裝目錄\5.1\include"添加到"包含目錄";

將"lua安裝目錄\5.1\lib"添加到"庫目錄";

跳到"連接器"的"輸入"欄。將"附加依賴項"中添加上"lua51.lib;lua5.1.lib";

至此環境基本就配置好了。類似下面:

現在我們用代碼測試一遍:

#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;
extern "C"
{
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
}
void main()
{
//1.創建一個state
lua_State *L = luaL_newstate();
//2.入棧操作
lua_pushstring(L, "Hello World~");
//3.取值操作
if (lua_isstring(L, 1)) { //判斷是否可以轉為string
cout << lua_tostring(L, 1) << endl; //轉為string並返回
}
//4.關閉state
lua_close(L);
system("pause");
return;
}

是不是木有問題啦╮(╯▽╰)╭

喏,我們親愛的World君

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2016-01/126948p2.htm

Copyright © Linux教程網 All Rights Reserved