我有一个使用GLFW,GLEW,GLM和Lua的项目。以前,我是在Linux环境上使用Makefile来链接库的,这些库是静态的,动态的。

基于此boilerplate project,我可以使用Cmake编译GLFW,GLEW和GLM并将其链接到我的项目。但是我在链接lua时遇到了麻烦,以前在Linux上只需要“ -llua”即可。

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

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


处理此问题的最干净方法是什么?我可以想到一些骇人听闻的方法,但是我想知道CMake中是否有可以处理的东西,或者其他人是否有以这种方式将lua与CMake链接的经验。

这是my CMakeLists.txt,我也会发布lua,但是我没有足够的代表。

最佳答案

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

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

10-08 04:06