включить библиотеку lua в креверси с помощью cmake (kdegames)

Итак, я работаю над добавлением lua-скрипта в kreversi. Я новичок в cmake, и я впервые пытаюсь кодировать проекты kde.

Я использую lua5.2 и обнаружил, что cmake официально не поддерживает библиотеку lua5.2. Итак, я искал и нашел это cmake для lua5.2 и имитацию его или ее CMakeList.txt и модифицированный соответственно к креверси CMakeList.txt.

вот мой модифицированный креверси 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 toluaL_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

это правильно? как я могу включить и связать lua5.2 в cmake?

Я уже установил lua5.2-dev на свой компьютер и без cmake успешно скомпилировал программу c-lua с gcc test.c -I/usr/include/lua5.2 -llua5.2


person bysreg    schedule 17.05.2013    source источник


Ответы (1)


неважно это. ошибка не из-за cmake, а из-за того, что я забыл включить lua.hpp и luaconf.h. он работал в gcc раньше, потому что я использовал его в чистом c

person bysreg    schedule 17.05.2013