KDevelop 找不到简单的 C++ 包含文件

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

我是 KDevelop 的新手。 我正在尝试构建一个以

开头的 C++ 程序

#include <GLFW/glfw3.h>

但是找不到。

此标题位于

/usr/include

GCC 应该查看这个目录,例如:

jvonachen@pop-os:~$ 
g++ -print-prog-name=cc1plus -v

.../usr/include...

在项目 -> 打开配置... -> 语言支持 -> 包含/导入我将 /usr/include/ 添加到包含列表中,我什至不需要这样做,对吗? GCC 自然已经看到了这一点。但我仍然收到错误

/home/jvonachen/projects/VulkanTest/build> /usr/bin/ninja

[1/2] Building CXX object CMakeFiles/vulkantest.dir/main.cpp.o

FAILED: CMakeFiles/vulkantest.dir/main.cpp.o

/usr/bin/c++ -std=c++17 -O2 -O3 -DNDEBUG -MD -MT CMakeFiles/vulkantest.dir/main.cpp.o -MF CMakeFiles/vulkantest.dir/main.cpp.o.d -o CMakeFiles/vulkantest.dir/main.cpp.o -c /home/jvonachen/projects/VulkanTest/main.cpp /home/jvonachen/projects/VulkanTest/main.cpp:2:10: fatal error: GLFW/glfw3.h: No such file or directory

2 | #include <GLFW/glfw3.h>

  |          ^~~~~~~~~~~~~~

compilation terminated.

ninja: build stopped: subcommand failed.

*** Failure: Exit code 1 ***

解析器没有问题,编辑器中没有任何问题迹象。 但构建失败。

c++ gcc include-path ninja kdevelop
1个回答
0
投票

KDevelop 使用 CMake 构建系统来编译 C++。如果你想修复包含问题,它将在 C++ 级别完成,而不是编辑器的 KDevelop 解析器。

要包含 glfw,只需在 CMakeLists.txt 文件中添加这两行即可:

find_package(glfw3 3.4 REQUIRED)
target_link_libraries(vulkantest PUBLIC glfw)

这将使 CMake 使用正确的标志正确构建。

KDevelop 应该默认选择这些标志来实现其智能感知

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