Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用KDE框架将qmake转换为cmake_C++_Qt_Cmake_Qmake_Kde - Fatal编程技术网

C++ 使用KDE框架将qmake转换为cmake

C++ 使用KDE框架将qmake转换为cmake,c++,qt,cmake,qmake,kde,C++,Qt,Cmake,Qmake,Kde,你好,我有一个项目,我想把它从qmake转换成cmake 我有一个qmake pro文件和两个cmakelists.txt 项目目录如下所示 src headers \ (all header files are here) ui\ resources \ cmakelists.txt (2)\ (all my cpp src files are here ) cmakeList.txt(1) qmake.pro file 这是qmake.pro文件

你好,我有一个项目,我想把它从qmake转换成cmake 我有一个qmake pro文件和两个cmakelists.txt

项目目录如下所示

src 
    headers \
    (all header files are here) 
    ui\
    resources \
    cmakelists.txt (2)\
(all my cpp src files are here )
cmakeList.txt(1)
qmake.pro file
这是qmake.pro文件

QT       += core gui dbus testlib network KCoreAddons KWidgetsAddons KConfigCore KF5Package

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    about.cpp \
    colorscheme.cpp \
    gtk.cpp \
    icons.cpp \
    license.cpp \
    main.cpp \
    mainwindow.cpp \
    plasmastyle.cpp \
    utils.cpp \
    wallpaper.cpp \
    kvantumstyle.cpp \
    lnflistmodel.cpp \
    lnflogic.cpp
    

HEADERS += \
    headers/colorscheme.h \
    headers/gtk.h \
    headers/about.h \
    headers/icons.h \
    headers/license.h \
    headers/mainwindow.h \
    headers/plasmastyle.h \
    headers/utils.h \
    headers/wallpaper.h \ 
    headers/kvantumstyle.h \ 
    headers/lnflistmodel.h \
    headers/lnflogic.h \\
    libs/Cron.h \
    libs/InterruptableSleep.h \
    libs/Scheduler.h

FORMS += \
    ui/about.ui \
    ui/license.ui \
    ui/mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

RESOURCES += \
    resources/resources.qrc

# Managing what make install does
target.path = /usr/bin/
desktop.path = /usr/share/applications/
desktop.files += koi.desktop
icons.path = /usr/share/icons/hicolor/scalable/apps/
icons.files += resources/icons/koi.svg\
               resources/icons/koi_tray.svg
INSTALLS += target desktop icons
这是主/父目录中的cmakelists.txt(1)文件

cmake_minimum_required(VERSION 3.17.0 FATAL_ERROR)

project(koi LANGUAGES CXX)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

set(CMAKE_AUTOUIC_SEARCH_PATHS ui)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()
#ECM is extra cmake modules and is used by kde frameworks
find_package(ECM ${KF5_MIN_VER} CONFIG REQUIRED )

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 ")
set(QT_MIN_VERSION "5.14.0")
set(KF5_MIN_VERSION "5.38.0")
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ${ECM_KDE_MODULE_DIR})

include(KDEInstallDirs)
include(KDECMakeSettings)
include(ECMOptionalAddSubdirectory)
include(ECMAddAppIcon)
include(ECMInstallIcons)

find_package(Qt5 ${REQUIRED_QT_VERSION} COMPONENTS NO_MODULE REQUIRED Network DBus Gui Core Test)
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS CoreAddons WidgetsAddons Config  Package I18n Service)

add_subdirectory(src)
这是我试图转换的src目录中的第二个cmakelists.txt(2)文件

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)

#QT and kde libraries 
set(QT5_LIBRARIES Qt5::Core Qt5::Gui Qt5::DBus Qt5::Network Qt5::Test)
set(KF5_LIBRAIRES KF5::CoreAddons KF5::WidgetsAddons KF5::ConfigCore  KF5::ConfigGui KF5::Package KF5::I18n KF5::Service)
set(koi_SRCS
    about.cpp 
    colorscheme.cpp 
    gtk.cpp 
    icons.cpp 
    license.cpp 
    main.cpp 
    mainwindow.cpp 
    plasmastyle.cpp 
    utils.cpp 
    wallpaper.cpp 
    kvantumstyle.cpp 
   # lnflistmodel.cpp 
   # lnflogic.cpp
)


add_executable(koi ${koi_SRCS})
target_link_libraries(koi ${QT5_LIBRARIES} ${KF5_LIBRAIRES})
    
当我试图建立项目时,它说

[main] Building folder: Koi-1 
[build] Starting build
[proc] Executing command: /usr/bin/cmake --build /home/da-viper/Documents/Development/KDE/Koi-1/build --config Debug --target all -- -j 10
[build] [1/1 100% :: 0.182] Linking CXX executable src/koi
[build] FAILED: src/koi 
[build] : && /usr/bin/g++  -std=c++11  -g   src/CMakeFiles/koi.dir/koi_autogen/mocs_compilation.cpp.o src/CMakeFiles/koi.dir/about.cpp.o src/CMakeFiles/koi.dir/colorscheme.cpp.o src/CMakeFiles/koi.dir/gtk.cpp.o src/CMakeFiles/koi.dir/icons.cpp.o src/CMakeFiles/koi.dir/license.cpp.o src/CMakeFiles/koi.dir/main.cpp.o src/CMakeFiles/koi.dir/mainwindow.cpp.o src/CMakeFiles/koi.dir/plasmastyle.cpp.o src/CMakeFiles/koi.dir/utils.cpp.o src/CMakeFiles/koi.dir/wallpaper.cpp.o src/CMakeFiles/koi.dir/kvantumstyle.cpp.o  -o src/koi  /usr/lib/libQt5Network.so.5.15.0  /usr/lib/libQt5Test.so.5.15.0  /usr/lib/libKF5WidgetsAddons.so.5.72.0  /usr/lib/libKF5ConfigGui.so.5.72.0  /usr/lib/libKF5Package.so.5.72.0  /usr/lib/libKF5Service.so.5.72.0  /usr/lib/libQt5Widgets.so.5.15.0  /usr/lib/libQt5Gui.so.5.15.0  /usr/lib/libKF5CoreAddons.so.5.72.0  /usr/lib/libKF5ConfigCore.so.5.72.0  /usr/lib/libQt5DBus.so.5.15.0  /usr/lib/libKF5I18n.so.5.72.0  /usr/lib/libQt5Xml.so.5.15.0  /usr/lib/libQt5Core.so.5.15.0 && :
[build] /usr/bin/ld: src/CMakeFiles/koi.dir/mainwindow.cpp.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5'
[build] /usr/bin/ld: /usr/lib/libpthread.so.0: error adding symbols: DSO missing from command line
[build] collect2: error: ld returned 1 exit status
[build] ninja: build stopped: subcommand failed.
[build] Build finished with exit code 1
有没有办法得到帮助来隐藏它/我还缺少什么让它工作


谢谢

尝试添加
查找包(线程)
并链接无法根据
线程::线程
构建的目标,例如
目标链接库(myTarget Threads::Threads)
。这一次错误更改为/usr/bin/ld:找不到-lkoi_HEADER koi_HEADER是我设置的头文件,这是我的新目标库target_link_库(${PROJECT_NAME}koi_HEADERS)。这是链接器抱怨它试图链接到名为
libkoi_HEADER的库。因此
或类似。您需要显示如何在
CMakeLists.txt
中定义
koi_头。如果要传播某些包含目录,请将其设置为
接口
库。尝试添加
查找包(线程)
,并链接无法针对
线程::线程
构建的目标,例如
目标链接库(myTarget Threads::Threads)
。这一次错误更改为/usr/bin/ld:找不到-lkoi_HEADER koi_HEADER是我设置的头文件,这是我的新目标库target_link_库(${PROJECT_NAME}koi_HEADERS)。这是链接器抱怨它试图链接到名为
libkoi_HEADER的库。因此
或类似。您需要显示如何在
CMakeLists.txt
中定义
koi_头。如果这是为了传播一些include目录,那么将其设置为
接口
库。