Завершение кода clangd в vscode дает неверные советы при разработке приложения QtLinux

Ответить Пред. темаСлед. тема
Anonymous
 Завершение кода clangd в vscode дает неверные советы при разработке приложения Qt

Сообщение Anonymous »

Я использую VSCode и компилятор gcc для разработки C++ в Linux, установлен сервер clangd и плагин clangd vscode. Мой пример кода показан ниже.

Код: Выделить всё

QByteArray bytearray;
configFile.open(QIODevice::WriteOnly); //configFile is a QFile
configFile.write(bytearray);
Clangd не помечает функцию open() как неправильную, но сообщает мне, что вызов write() неверен, выдавая следующее сообщение об ошибке .

Код: Выделить всё

No matching member function for call to 'write'clang(ovl_no_viable_member_function_in_call)
qiodevice.h(90, 12): Candidate function not viable: no known conversion from 'QFile' to 'QIODevice' for object argument
qiodevice.h(89, 12): Candidate function not viable: no known conversion from 'QFile' to 'QIODevice' for object argument
qiodevice.h(88, 12): Candidate function not viable: requires 2 arguments, but 1 was provided
Класс QFile наследует класс QFileDevice, который наследует QIODevice, поэтому функция write() также должна существовать в QFile. Но clangd, похоже, не распознает эту функцию.
В qiodevice.h

Код: Выделить всё

qint64 write(const char *data, qint64 len);
qint64 write(const char *data);
qint64 write(const QByteArray &data);
Мой CMakeLists.txt

Код: Выделить всё

cmake_minimum_required(VERSION 3.21)
project(ClevoFanControl VERSION 2.0.4 LANGUAGES CXX)

set(CMAKE_BUILD_TYPE "Debug")

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS on)

include_directories("include")

IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
include_directories("/home/main/Applications/Qt/6.7.2/gcc_64/include")
set(CMAKE_PREFIX_PATH "/home/main/Applications/Qt/6.7.2/gcc_64/lib/cmake")
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
include_directories("D:\\Applications\\Qt\\6.7.2\\mingw_64\\include")
set(CMAKE_PREFIX_PATH "D:\\Applications\\Qt\\6.7.2\\mingw_64\\lib\\cmake")
set(CMAKE_C_COMPILER "D:\\Applications\\Qt\\Tools\\mingw1120_64\\bin\\gcc.exe") #using custom gcc can cause error
set(CMAKE_CXX_COMPILER "D:\\Applications\\Qt\\Tools\\mingw1120_64\\bin\\g++.exe")
if(CMAKE_BUILD_TYPE MATCHES "Release")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows")
endif()
ENDIF (CMAKE_SYSTEM_NAME MATCHES "Linux")

if(CMAKE_BUILD_TYPE MATCHES "Release")
add_definitions(-DQT_NO_DEBUG_OUTPUT)
endif()

find_package(Qt6 REQUIRED COMPONENTS Core Widgets Gui)
add_executable(ClevoFanControl main.cpp ClevoFanControl.cpp ClevoFanControl.qrc ClevoFanControl.rc config.ui monitor.ui)
target_link_libraries(ClevoFanControl PRIVATE Qt6::Core Qt6::Widgets Qt6::Gui)
ОС: debian12
Qt: 6.7.2
gcc: 12.2.0
Я включил qiodevice.h< /code> и qfiledevice.h, но ничего не изменилось.
Я хочу, чтобы языковой сервер clangd выдавал правильное сообщение, помогите мне, спасибо.

Подробнее здесь: https://stackoverflow.com/questions/790 ... qt-applica
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Новичок в Hyperland на Manjaro - какие -нибудь советы или советы? [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Советы по разработке веб-аудио-стипендия? [закрыто]
    Anonymous » » в форуме Javascript
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Ошибка запроса API API API. Неверные параметры неверные параметры
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как использовать vscode-clangd с С++ 11?
    Гость » » в форуме C++
    0 Ответы
    32 Просмотры
    Последнее сообщение Гость
  • Как использовать vscode-clangd с С++ 11?
    Гость » » в форуме C++
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость

Вернуться в «Linux»