目前,我正在尝试使用 KDevelop 4.7.3 创建一个全新的项目。我也针对 Qt5。当我尝试使用 Qt Gui 项目的模板创建一个新项目时,它会创建一个 Qt4 项目,然后我将 cmake 文件更改为 Qt5,但无论是 Qt4 还是 Qt5 状态,它都找不到库头文件来进行语义分析,甚至无法编译。
只是好奇如何解决这个问题。我已经安装了 Qt Creator(运行良好)并在 Kubuntu 上安装了 KDevelop,所以我假设我已经拥有所需的库,但如果我遗漏了什么,请告诉我。
以下是它自动创建的 make 文件,我添加了一些内容。请根据需要进行编辑。
cmake_minimum_required(VERSION 2.8)
project(stickykey)
find_package(Qt5Core)
find_package(Qt5 REQUIRED Gui Widgets)
find_package(Qt5Widgets)
# # The Qt5Widgets_INCLUDES also includes the include directories for
# # dependencies QtCore and QtGui
include_directories(${Qt5Widgets_INCLUDES})
#
# # We need add -DQT_WIDGETS_LIB when using QtWidgets in Qt 5.
add_definitions(${Qt5Widgets_DEFINITIONS})
#
# # Executables fail to build with Qt 5 in the default configuration
# # without -fPIE. We add that here.
# set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(StickyKey_SRCS StickyKey.cpp main.cpp)
#qt5_automoc(${StickyKey_SRCS})
add_executable(stickykey ${StickyKey_SRCS})
target_link_libraries(stickykey ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} Qt5::Widgets)
install(TARGETS stickykey RUNTIME DESTINATION bin)
答案1
更新 PPA
据说这个 PPA 可以解决问题,但我还没有尝试过,因为我只是使用 git 版本,这样以后我可以更轻松地构建新版本。如果您想要一个不错的打包版本,那么这里是启动板。 https://launchpad.net/~blaze/+archive/ubuntu/kf5/
继续下面的 KDE 源代码编译
我找到了解决问题的方法,而且非常简单,因为步骤都写出来了,你可以照着做。不过,如果你不习惯自己编译,那么你可能只想等待 PPA,或者至少如果你要坚持使用 16.04,那么就向后移植。
为了解决这个问题,您可以在使用 Kdevelop 的打包版本时手动添加所有正确的路径,也可以从源代码构建它。
我正在使用从源代码构建的版本,并且可以在仍然安装旧版本的情况下使用它,因此如果您按照说明操作,您应该有两个不冲突的 KDevelop 工作版本。
如果链接出现问题,我会在这里发布重要内容,但这应该会有所帮助。
安装依赖项
sudo apt-get build-dep qtbase5-dev
sudo apt-get 安装 libbz2-dev libxslt-dev libxml2-dev 共享-mime-info 氧气图标主题 libgif-dev libvlc-dev libvlccore-dev doxygen gperf bzr libxapian-dev fontforge libgcrypt20-dev libattr1-dev 网络管理器-dev libgtk-3-dev xsltproc xserver-xorg-dev xserver-xorg-input-synaptics-dev libpwquality-dev modemmanager-dev libxcb-keysyms1-dev libepoxy-dev libpolkit-agent-1-dev libnm-util-dev libnm-glib-dev libegl1-mesa-dev libxcb-xkb-dev libqt5x11extras5-dev libwww-perl libxml-parser-perl libjson-perl libboost-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libarchive-dev liblmdb-dev cmake git extra-cmake-modules“libkf5.*-dev” llvm llvm-3.6 libclang-3.6-dev
添加将以下文本添加到你的 ~/.gitconfig 中:
[url "git://anongit.kde.org/"]
insteadOf = kde:
[url "ssh://[email protected]/"]
pushInsteadOf = kde:
安装 Kde Src Build
mkdir ~/kdesrc
cd ~/kdesrc
git clone kde:kdesrc-build
cd kdesrc-build
cp kdesrc-buildrc-kf5-sample ~/.kdesrc-buildrc
# Install a symlink of kdesrc-build to a location in PATH
mkdir ~/bin
ln -s $PWD/kdesrc-build ~/bin
export PATH=~/bin:$PATH
配置 kdesrc-build
edit ~/.kdesrc-buildrc
代替/路径/到/kdesrc-build/kf5-qt5-build-include和〜/ kdesrc / kdesrc-build / kf5-qt5-build-include在那个文件中
添加忽略-kde-结构 true和make 选项 -jN到全局部分
安装更多依赖项
kdesrc-build --debug libkomparediff2 grantlee kdevplatform kdevelop-pg-qt kdevelop
复制这些命令到一个名为 ~/.env-kf5 的新文件:
export KF5=~/kde-5
export QTDIR=/usr
export CMAKE_PREFIX_PATH=$KF5:$CMAKE_PREFIX_PATH
export XDG_DATA_DIRS=$KF5/share:$XDG_DATA_DIRS:/usr/share
export XDG_CONFIG_DIRS=$KF5/etc/xdg:$XDG_CONFIG_DIRS:/etc/xdg
export PATH=$KF5/bin:$QTDIR/bin:$PATH
export QT_PLUGIN_PATH=$KF5/lib/plugins:$KF5/lib64/plugins:$KF5/lib/x86_64-linux-gnu/plugins:$QTDIR/plugins:$QT_PLUGIN_PATH
# (lib64 instead of lib, on OpenSUSE and similar)
export QML2_IMPORT_PATH=$KF5/lib/qml:$KF5/lib64/qml:$KF5/lib/x86_64-linux-gnu/qml:$QTDIR/qml
export QML_IMPORT_PATH=$QML2_IMPORT_PATH
export KDE_SESSION_VERSION=5
export KDE_FULL_SESSION=true
运行KDevelop
source ~/.env-kf5
kdevelop