所以,我正在努力将 lua 脚本添加到kreversi中。我是 cmake 的新手,这是我第一次尝试编写 kde 项目。
我正在使用 lua5.2 并发现 cmake 不正式支持 lua5.2 库。所以我搜索并找到了这个lua5.2 的 cmake 并模仿他或她的 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) #### I ADDED THIS LINE #####
include_directories( ${CMAKE_SOURCE_DIR}/libkdegames/highscore ${LUA_INCLUDE_DIR} ) #### I MODIFIED THIS LINE #####
########### next target ###############
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}) #### I MODIFIED THIS LINE #####
install(TARGETS kreversi ${INSTALL_TARGETS_DEFAULT_ARGS} )
########### install files ###############
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 时,出现编译错误“未定义对luaL_newstate()'" and "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 test.c -I/usr/include/lua5.2 -llua5.2 成功编译了 c-lua 程序