windows下cmake鏈接到lua庫的倆種方法

前言

在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入門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章