当前位置: 首页 > news >正文

lua C语言api学习1 编译第一个程序

本文开始进行lua C语言api的学习

1 简介

lua语言与C语言使用还是很紧密,以前我只是学习lua语言比较多,C语言api部分了解比较少,最近在学习tcc编译器的使用进一步学习一下lua C语言api的使用。

2 配置编译环境

首先需配置好tcc编译器环境[参考],再配置好lua源码路径[参考],新建一个C:\run\test\lua-Capi目录,后续主要在该路径下编程,复制之前的tcc编程环境.bat到当前目录,对其进行修改,更改如下,主要增加一个lua_src变量设置为lua源码路径。

::将编辑器路径设置到path变量
set path=C:\run\tcc;%path%
::设置lua源码路径
set lua_src=C:\run\test\lua-5.4.7\src
::启动命令行
cmd

其次,需复制之前lua源码路径下之前编译好的动态链接库文件lua.dll和导出文件lua.def到当前目录,方便后续使用。

3 编写第一个程序

第一个程序01hello_lua.c如下

//01hello_lua.c
//第一个基本程序
#include <stdio.h>
#include <stdlib.h>

//载入lua相关头文件
#include "lua.h"     
#include "lauxlib.h" 
#include "lualib.h"  

int main()
{
	//创建一个新的lua状态
	lua_State* L = luaL_newstate(); 
	// 创建标准库
	luaL_openlibs(L);
	// 解析并执行Lua脚本字符串
	luaL_dostring(L, "print('Hello, Lua!')");
	// 关闭Lua线程
	lua_close(L);                             
	return 0;
}

相对还是比较简单.

3 编译第一个程序

打开tcc编程环境.bat,输入以下命令。

::编译程序
tcc -I %lua_src% lua.def 01hello_lua.c -o 01hello_lua.exe
::执行程序
01hello_lua

运行情况如下:
在这里插入图片描述
本次采用链接到动态链接库方式编译,这样生成的程序比较小,若要复制程序,需连同lua.dll一起复制。

4 编写Makefile文件

从上面编译命令看,还是比较复杂,容易输错,我将上面编译指令编写为Makefile文件,如下。

# 学习lua C语言api的Makefile文件
# lua源码路径
lua_src=C:\run\test\lua-5.4.7\src
# 显示帮助
help:
	echo 用法为make [源码名称]


# 编写通用编译指令
# %代表匹配任何输入参数,这里主要为源码名称
# $@代表匹配表示生成的目标文件,这里为源码名称
%:
	@tcc -I $(lua_src) lua.def $@.c -o $@.exe
	@echo -----$@.exe生成成功----
	@echo -----运行$@.exe程序----
	@./$@

输入下面指令即可编译并运行程序。

make 01hello_lua

在这里插入图片描述
后续新建新的c代码文件,可以使用make 名称进行编译。

make 源代码名称

相关文章:

  • 【巨人网络】25届春招、26届实习内推码,面经
  • nginx反向代理应用
  • SMC自修改
  • 二进制安装指定版本的MariaDBv10.11.6
  • 珠算之珠心算观想算盘
  • 基于Python+Vue开发的鲜花商城管理系统源码+运行步骤
  • 深度学习基础:线性代数本质4——矩阵乘法
  • 机器学习之超参数优化(Hyperparameter Optimization)
  • 【leetcode hot 100 23】合并K个有序链表
  • 图像识别技术与应用-YOLO
  • AI日报 - 2025年3月13日
  • Spring Boot 整合 Druid 并开启监控
  • 软件版本号设计
  • IEC61850标准下MMS 缓存报告控制块 ResvTms详细解析
  • 十种处理权重矩阵的方法及数学公式
  • python-leetcode 49.二叉树中的最大路径和
  • 【ES6】ES6中的类
  • 侯捷C++课程学习笔记:构造函数那些事儿(四)
  • 微信h5环境使用开放标签(wx-open-launch-weapp)打开三方小程序
  • 【商城实战(25)】解锁UniApp移动端适配秘籍,打造完美商城体验
  • 独家 |《苏州河》上海上演,编剧海飞:上海的风能吹透我
  • 联合国报告:全球经济前景恶化,面临高度不确定性
  • 复原展出孙吴大墓,江苏首座考古博物馆将开放
  • 欠债七十万后,一个乡镇驿站站长的中年心事
  • 成都警方通报:8岁男孩落水父母下水施救,父亲遇难
  • 董军同法国国防部长举行会谈