Cmake 静态地将库编译成二进制?

Cmake 静态地将库编译成二进制?,cmake,Cmake,我正试图在一个CMake项目中通过链接来解决编译时间错误 该项目通过以下方式构建自己的Lua spin: 在中引用Lua以编译生成的二进制文件: list(APPEND SMDATA_LINK_LIB "lua-5.1" ...brevity ) ...brevity target_link_libraries("${SM_EXE_NAME}" ${SMDATA_LINK_LIB}) 我还可以使用它链接的其他一些库(如libpng、libjpeg等),但我希望Lua静态编译成最终的二进

我正试图在一个CMake项目中通过链接来解决编译时间错误

该项目通过以下方式构建自己的Lua spin:

在中引用Lua以编译生成的二进制文件:

list(APPEND SMDATA_LINK_LIB
  "lua-5.1"
  ...brevity
)
...brevity
target_link_libraries("${SM_EXE_NAME}" ${SMDATA_LINK_LIB})
我还可以使用它链接的其他一些库(如libpng、libjpeg等),但我希望Lua静态编译成最终的二进制文件,这样它就不依赖于任何系统Lua


如何修改CMakeLists以将Lua库静态编译为二进制文件?

通常您可以告诉CMake以静态方式编译库:

add_library("lua-5.1" ${LUA_SRC} ${LUA_HPP})
变成

add_library("lua-5.1" STATIC ${LUA_SRC} ${LUA_HPP})
add_library("lua-5.1" STATIC ${LUA_SRC} ${LUA_HPP})