所以,我正在努力將lua腳本添加到kreversi。我是cmake的新手,這是我第一次嘗試編碼到kde項目中。包括在kreversi使用cmake(kdegames)lua庫
我使用lua5.2,發現cmake並沒有正式支持lua5.2庫。所以我搜索並找到了lua5.2的this 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的,然後進行有編譯錯誤「未定義參考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?
我已經在我的電腦,沒有安裝的CMake lua5.2-dev的,已經成功編譯C-Lua程序中使用gcc test.c的-I/usr/include目錄/ lua5.2 -llua5.2