Lua
的 CMAKE
构建配置文件
目前已测试的平台与支持的编译器
-
MSVC
-
gcc
-
clang
-
Windows
-
Linux
-
MacOS
-
FreeBSD
-
在
src
目录下创建CMakeLists.txt
文件, 并将下面内容复制进去. -
然后在
src
目录运行命令cmake -B build && cmake --build build
-
可选的并行编译与缓存加速,可以更快构建并且降低调试成本.
-
内部脚本自动检测平台, 减少手动配置带来的复杂性.
-
简化开发者的构建成本, 将重心集中在语言与业务.
-
更方便的为开发者支持
C
/CXX
两种编译方式. -
更智能的警告和错误提示.
如果您想使用C++
进行编译又想按照C
标准导入/导出符号,那么可以根据自己的平台在luadir/src
目录选择下面的命令运行.
不过,需要注意的是: 运行下面的脚本之后必须使用C++
编译器进行编译,否则会引起编译错误.
使用PowerShell
来快速替换.
# 修改符号导出规则适应`C`与`C++`
if (-not (Test-Path "luaconf.h.old")) {
Rename-Item "luaconf.h" "luaconf.h.old"
}
Get-Content luaconf.h.old | ForEach-Object { $_.replace('__declspec(dllexport)', 'extern "C" __declspec(dllexport)') } | Set-Content luaconf.h
Remove-Item "luaconf.h.old"
使用下面的命令替换即可.
#!/usr/bin/env bash
perl -pi -e "s/#define LUA_API\t\textern$/#ifdef __cplusplus\n#define LUA_API extern \"C\"\n#else\n#define LUA_API extern\n#endif/g" luaconf.h
-
如果你的宿主程序使用
C++
编写, 推荐使用C++
编译器进行编译. 否则可能无法保障RAII
的完整性. -
您将
LUAI_THROW
替换为try
/catch
/throw
后,在性能上会受到一定影响(具体数值以实际为准).