前言
在vscode上用cmake链接到lua库花了差不多一天时间,简直要崩溃了,现将俩种方法记录下来希望对小伙伴有帮助
find_package
第一种介绍一下用find_package由编译器帮你找到库的位置,这种方法比较适用于你拿到一台陌生的机器,比较方便,他会在环境变量,同级目录中帮你找所需的库和头文件,也可以指定目录。这里就不多介绍,感兴趣的小伙伴可以去官方文档查一下(官方文档)。
cmake代码如下
#版本
cmake_minimum_required(VERSION 2.8)
#生成的可执行文件名
project(main)
#支持c17
set(CMAKE_CXX_STANDARD 17)
#我是用来学sol2库的,链接lua可以不要
include_directories("${PROJECT_SOURCE_DIR}/sol3.0.3/sol2/include")
#找lua51这个库
find_package(Lua51)
#包含头文件,LUA_INCLUDE_DIR这个是cmake中的宏(包名_INCLUDE_DIR)
include_directories(${LUA_INCLUDE_DIR})
#生成可执行文件
add_executable(main main.cpp)
#链接到库
target_link_libraries(main ${LUA_LIBRARIES})
include
第二种方法就是用自己包含库和头文件,相当于在vs中项目属性中加入相应的库和头文件,代码如下
cmake_minimum_required(VERSION 2.8)
project(main)
set(CMAKE_CXX_STANDARD 17)
#包含头文件
include_directories("../../lua lib/sol3.0.3/sol2/include")
include_directories("C:/Program Files (x86)/Lua/5.1/include")
include_directories("C:/Program Files (x86)/Lua/5.1/lib")
add_executable(main main.cpp)
#将库链接进来
target_link_libraries(main ${LUA_LIBRARIES})
排坑
之前用的就是第二种方法,但是一直都不能正确运行,后来发现是因为自己的编译器是64位的导致一直不能成功编译,后来将编译器换成32位的就可以了。最后给小伙伴们分享一篇cmake入门的博客,应该是很有帮助的。(cmake入门)