使用CMake(kdegames)在kreversi中包含lua库。
2013-5-17 10:13:28
收藏:0
阅读:104
评论:1
所以,我正在尝试将 Lua 脚本添加到 kreversi 中。我是 cmake 的新手,这是我第一次尝试在 KDE 项目中进行编码。
我正在使用 lua5.2,并发现 cmake 没有正式支持 lua5.2 库。所以我搜索并找到了 这个 cmake 对于 lua5.2,并模仿他或她的 CMakeList.txt,并相应地修改为 kreversi 的 CMakeList.txt。
这是我修改的 kreversi CMakeList:
project(kreversi)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/")
if(NOT COMPILING_KDEGAMES)
find_package(KDE4 REQUIRED)
include(KDE4Defaults)
include(MacroLibrary)
find_package(KDEGames 4.9.0 REQUIRED)
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS})
add_definitions(-DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS)
include_directories(${KDEGAMES_INCLUDE_DIRS} ${KDEGAMES_INCLUDE_DIR}/highscore ${KDE4_INCLUDES} ${QDBUS_INCLUDE_DIRS})
endif(NOT COMPILING_KDEGAMES)
add_subdirectory( pics )
add_subdirectory( sounds )
add_subdirectory( icons )
add_subdirectory( doc )
find_package(Lua52 REQUIRED) #### 我添加了这一行 #####
include_directories( ${CMAKE_SOURCE_DIR}/libkdegames/highscore ${LUA_INCLUDE_DIR} ) #### 我修改了这一行 #####
########### 下一个目标 ###############
set(kreversi_SRCS
kreversichip.cpp
kreversigame.cpp
kreversiscene.cpp
kreversiview.cpp
Engine.cpp
highscores.cpp
mainwindow.cpp
main.cpp )
kde4_add_kcfg_files(kreversi_SRCS preferences.kcfgc)
kde4_add_app_icon(kreversi_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi*-app-kreversi.png")
kde4_add_executable(kreversi ${kreversi_SRCS})
target_link_libraries(kreversi ${KDE4_KDEUI_LIBS} kdegames ${LUA_LIBRARIES}) #### 我修改了这一行 #####
install(TARGETS kreversi ${INSTALL_TARGETS_DEFAULT_ARGS} )
########### 安装文件 ###############
install( PROGRAMS kreversi.desktop DESTINATION ${XDG_APPS_INSTALL_DIR} )
#install( FILES kreversi.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
install( FILES kreversiui.rc DESTINATION ${DATA_INSTALL_DIR}/kreversi )
当我尝试运行 cmake,然后是 make,会出现编译错误 "undefined reference to luaL_newstate()'" 和 "undefined reference to luaL_openlibs(lua_State*)'",这可能是链接过程出现了问题。
我尝试了:
message("lua library : " ${LUA_LIBRARIES})
并且输出为:
lua library : /usr/lib/i386-linux-gnu/liblua5.2.so/usr/lib/i386-linux-gnu/libm.so
这是正确的吗?我如何在 cmake 中包含和链接 lua5.2?
我已经在我的电脑上安装了 lua5.2-dev,并且没有使用 cmake 成功编译了带有 gcc 的 c-lua 程序 test.c -I/usr/include/lua5.2 -llua5.2。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
不用理会这个。错误不是来自于 CMake,而是因为我忘记了包括 lua.hpp 和 luaconf.h。在 GCC 中可以正常工作,因为我在纯 C 中使用它。