cmake编译lua

lua 5.1.5源码

 

创建一个CMakeList.txt文件

cmake_minimum_required(VERSION 3.10.0)

set(Proj_Name "mylua")
project(${Proj_Name})

# 使用的语言标准是C89/ANSI C
set(CMAKE_C_STANDARD 90)

# 头文件搜索目录
include_directories("src")

# 源码文件
aux_source_directory("src" Lua_Lib_Src) #遍历src文件夹的所有源码文件, 存放在变量Lua_Lib_Src上
list(REMOVE_ITEM 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

#生成动态库
set(Dll_Name "lua51")
add_library(${Dll_Name} SHARED ${Lua_Lib_Src})

#生成静态库
#add_library("lua51_s" STATIC ${Lua_Lib_Src})

# 生成可执行文件
set(Lua_Exe_Name "lua")
add_executable(${Lua_Exe_Name} ${Lua_Src}) #生成exe
target_link_libraries(${Lua_Exe_Name} ${Dll_Name})

set(Luac_Exe_Name "luac")
add_executable(${Luac_Exe_Name} ${Luac_Src}) #生成exe

 

用MinGW编译

1, 先用cmake-gui根据CMakeList.txt生成make文件

等同于用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博客

 

posted @ 2024-02-26 22:18  yanghui01  阅读(88)  评论(0编辑  收藏  举报