我是 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 ***
解析器没有问题,编辑器中没有任何问题迹象。 但构建失败。
KDevelop 使用 CMake 构建系统来编译 C++。如果你想修复包含问题,它将在 C++ 级别完成,而不是编辑器的 KDevelop 解析器。
要包含 glfw,只需在 CMakeLists.txt 文件中添加这两行即可:
find_package(glfw3 3.4 REQUIRED)
target_link_libraries(vulkantest PUBLIC glfw)
这将使 CMake 使用正确的标志正确构建。
KDevelop 应该默认选择这些标志来实现其智能感知