nvim 中的 Qt5 库与 clangd lsp-server 的问题

问题描述 投票:0回答:2

我是一名大学生,我被分配了一个项目,用 Qt5 和 g++11 作为编译器,我使用 nvim 和 clangd 作为 lsp 服务器。问题是即使安装了 lsb 服务器也找不到各种 Qt 库。

在互联网上搜索,他们说尝试将库添加到 CPATH,一旦完成,但问题没有解决,而是导致其他错误:

通过另一次搜索,我发现我必须使用构建系统,这是我从未做过的事情,并且在互联网上搜索我不明白如何做到这一点,并修改构建文件夹内的 .json 配置文件。重点是我的项目文件夹是这个

程序/ -Makefile -main.cpp -prog.pro

在实践中,如果有人能向我很好地解释问题并帮助我解决它,我将非常感激,因为在互联网上搜索并阅读各种文档我不明白我应该做什么。

c++ qt5 neovim
2个回答
1
投票

首先,要将 clangd (或任何其他编译器)与 lsp 一起使用,您需要为您的项目提供一个可用的 make 文件。然后可以将其转换为 lsp 服务器配置。 假设您使用 cmake,您可以调用

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1
它将生成一个包含 lsp-server 配置的 json 文件。在此文件中,clangd 将找到所有必要的信息,在哪里可以找到包含文件(这是当前您的问题)以及在哪里可以找到哪些库(这将是您遇到的下一个问题)。

说实话:目前,您正在尝试在新环境(Qt)的同时学习 C++,同时创建构建文件和配置服务器。对于经验丰富的程序员来说,所有这些甚至都是一个问题 - 但你不是。

所以我建议使用本机 Qt IDE(称为 Qt Creator)安装 Qt。该 IDE 将为您设置一个 cmake 文件和一个调试环境。一旦您的程序运行良好,您就可以切换到 lsp-server 环境作为最后一步。


0
投票

如果您需要使用带有 lsp 支持(本例为 clangd)的 neovim 进行 Qt 项目开发,我的建议是:

首先使用qt Creator创建基本项目。在项目文件夹中你将得到(使用默认设置)

  • 主.cpp
  • 主窗口.cpp
  • 主窗口.h
  • 主窗口.ui
  • CMakeLists.txt

从终端构建项目(使用 Cmake)

cmake -DCMAKE_PREFIX_PATH=<qt_path> -S <source-dir> -B <build-dir>

例如

cmake -DCMAKE_PREFIX_PATH=~/Qt/6.7.0/macos/ -S ../firstQtproject -B .

(-B 之后有一个“.”)这将构建您的项目。 检查这个

获得 clangd 支持

为此,您需要为您的项目生成

compile_commands.json
文件。要生成可以使用 cmake 的文件,请使用以下命令。

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -S <source-dir> -B <build-dir>

现在您可以看到

compile_commands.json
已生成到您的项目中,您需要将该文件链接到您的源区域。 检查这个

ln -s compile_commands.json ../firstQtproject

然后在您的项目目录(本例中为firstQtproject)上打开neovim,所有lsp功能都应该支持。

© www.soinside.com 2019 - 2024. All rights reserved.