在 Cmake 中静态链接 Lua

Statically Linking Lua in Cmake

我有一个使用 GLFW、GLEW、GLM 和 Lua 的项目。以前我在我的 Linux 环境中使用 Makefile,它 link 编辑了一些库,一些是静态的,一些是动态的。

基于此boilerplate project我可以使用 Cmake 将 GLFW、GLEW 和 GLM 编译并 link 到我的项目中。但是,我在使用 linking lua 时遇到了问题,之前只需要 Linux 上的“-llua”。

我可以使用 Cmake 构建 lua 并且在构建我的项目时它确实打印出 liblua 已经构建但是在它抱怨缺少 luaconf.h 之后不久。可能是因为它不存在, luaconf.h.in 存在并且 lua CMakeLists.txt 中的以下行似乎生成 luaconf.h:

configure_file ( src/luaconf.h.in ${CMAKE_CURRENT_BINARY_DIR}/luaconf.h )

处理这个问题最干净的方法是什么?我可以想到一些 hacky 方法,但我想知道 CMake 中是否有可以处理它的东西,或者其他人是否有使用 CMake 以这种方式 linking lua 的经验。

这是 my CMakeLists.txt,我也想 post lua,但我没有足够的代表。

我终于让它工作了(其他一些错误妨碍了我)。 上述行将生成的 luaconf.h 文件复制到二进制目录,现在我只是将其复制到源目录:

configure_file ( src/luaconf.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/luaconf.h )