cmake编译lua
lua 5.1.5源码

创建一个CMakeList.txt文件
cmake_minimum_required(VERSION 3.10.0)
set(Proj_Name "mylua")
project(${Proj_Name})
set(CMAKE_C_STANDARD 90) # 使用C98/ANSI C
include_directories("src") # 设置头文件搜索目录
aux_source_directory("src" Lua_Lib_Src) #遍历src目录的源码文件, 存放在变量${Lua_Lib_Src}上
list(REMOVE_ITEM Lua_Lib_Src "src/lua.c") #删掉${Lua_Lib_Src}中的src/lua.c条目
file(GLOB Lua_Src "src/lua.c")
aux_source_directory("src" Luac_Src) #遍历src目录的源码文件, 存放在变量${Luac_Src}上
list(REMOVE_ITEM Luac_Src "src/lua.c")
add_definitions(-DLUA_BUILD_AS_DLL) #定义宏LUA_BUILD_AS_DLL
add_library("lua51" SHARED ${Lua_Lib_Src}) # 源码编译生成动态库
#add_library("lua51_s" STATIC ${Lua_Lib_Src}) # 源码编译生成静态库
add_executable("lua" ${Lua_Src}) # 生成exe文件
target_link_libraries("lua" "lua51") # 目标lua的库文件搜索路径
add_executable("luac" ${Luac_Src}) # 生成可执行文件
用MinGW编译
1, 先用cmake-gui根据CMakeList.txt生成make文件(Configure设置为MinGW Makefiles,点击Generate)

等同于用cmake命令cmake -S . -B build -G "MinGW Makefiles"
2, 用MinGW根据生成的make文件编译代码
命令行 -> 进入build文件夹 -> 输入mingw32-make, 就会根据make文件开始编译了


3, 编译后生成的文件

4, 如果之前勾了GNUtoMS,将额外生成Windows平台上的库文件(即:.lib文件)


用Visual Studio编译
1, 先用cmake-gui根据CMakeList.txt生成.vcxproj和.sln文件


2, 双击生成的sln文件,打开Visual Studio,然后生成解决方案


3, 编译后生成的文件

参考
Windows下lua的编译与环境搭建_lua windows-CSDN博客
c++ 编译添加dll_VS2019编译lua源码-CSDN博客

浙公网安备 33010602011771号