Portál AbcLinuxu, 6. května 2025 14:27
project(kminidlna) cmake_minimum_required(VERSION 2.6) find_package(KDE4 REQUIRED) find_package(Qt4 REQUIRED) find_package(OpenSSL REQUIRED) add_subdirectory(po) add_subdirectory(src) # set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE ON) add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS} ) set(VERSION "0.19")poté ve složce src, v které je main:
include_directories(${KDE4_INCLUDES} ${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${OPENSSL_INCLUDE_DIR}) set(VERSION "0.2 beta") configure_file(kminidlna_version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/kminidlna_version.h ) # enable_testing() #enable testing # add_subdirectory(../po) add_subdirectory(server) add_subdirectory(view) add_subdirectory(core) add_subdirectory(tests) set(kminidlna_SRCS main.cpp) set(kminidlna_RCCS resource.qrc) kde4_add_app_icon(kminidlna_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/resource/kminidlna.png") qt4_add_resources(kminidlna_RCCS_SRCS ${kminidlna_RCCS}) kde4_add_executable(kminidlna ${kminidlna_SRCS} ${kminidlna_RCCS_SRCS}) target_link_libraries(kminidlna ${OPENSSL_LIBRARIES} server core view ${KDE4_KDEUI_LIBS} ${KDE4_KIO_LIBS} ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ) install(TARGETS kminidlna DESTINATION ${BIN_INSTALL_DIR}) install(PROGRAMS kminidlna.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resource/kminidlna.png DESTINATION ${ICON_INSTALL_DIR})a konečně v server mám:
include_directories(${KDE4_INCLUDES} ${QT_INCLUDES} ${OPENSSL_INCLUDE_DIR}) set( SERVER_SRCS certificategenerator.cpp interface/restminidlnaput.cpp restconnection.cpp interface/restmediafolder.cpp interface/basicrestresource.cpp interface/restminidlna.cpp interface/restinterfaces.cpp interface/restresource.cpp restserver.cpp serverrequest.cpp ) kde4_add_library(server STATIC ${SERVER_SRCS} ) target_link_libraries( server ${OPENSSL_LIBRARIES} ${QT_QTXML_LIBRARY} ${QT_QTXMLPATTERNS_LIBRARY}) add_subdirectory(interface)Už jsem z toho fakt nešťastný a nevím co s tím. V mém zkušebním projektu vše funguje.
Řešení dotazu:
FIND_LIBRARY(OPENSSL_SSL_LIBRARIES NAMES ssl ssleay32 ssleay32MD) FIND_LIBRARY(OPENSSL_CRYPTO_LIBRARIES NAMES crypto) ... SET(OPENSSL_LIBRARIES ${OPENSSL_SSL_LIBRARIES} ${OPENSSL_CRYPTO_LIBRARIES})Tudiz bych cekal, ze v OPENSSL_LIBRARIES bude i "-lcrypto". Nejde cmake spustit v debug rezimu a zjistit kde je problem (napr pomoci --debug-output, nebo --trace)?
target_link_libraries( server ${OPENSSL_LIBRARIES} ${QT_QTXML_LIBRARY} ${QT_QTXMLPATTERNS_LIBRARY})
pridat:
MESSAGE(STATUS "OPENSSL_SSL_LIBRARIES :" "${OPENSSL_SSL_LIBRARIES}") MESSAGE(STATUS "OPENSSL_CRYPTO_LIBRARIES :" "${OPENSSL_CRYPTO_LIBRARIES}") MESSAGE(STATUS "OPENSSL_LIBRARIES :" "${OPENSSL_LIBRARIES}")Me to vypise:
-- OPENSSL_SSL_LIBRARIES :/usr/lib64/libssl.so -- OPENSSL_CRYPTO_LIBRARIES :/usr/lib64/libcrypto.so -- OPENSSL_LIBRARIES :/usr/lib64/libssl.so;/usr/lib64/libcrypto.so
find_package(OpenSSL REQUIRED) find_package(KDE4 REQUIRED) find_package(Qt4 REQUIRED)kde musí být OpenSSL před Qt4. Qt si asi ty proměnné nějak přepíše. Moc díky za pomoc.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.