gpt4 book ai didi

c++ - KDevelop 看不到 C++ 头文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:19 24 4
gpt4 key购买 nike

我有一个由多个共享库构建的 C++ 项目。每个库源代码都放在其目录子树下。主 CMakeList 文件包含一个列表 add_subdirectory(<dirname>)指令。每个子目录中的 CMakeList 文件包含如下定义:

set (SOURCE_FILES 
util/src/Connector.cpp
pub/util/Connector.h
)

add_library(channels SHARED $( SOURCE_FILES))
SET_TARGET_PROPERTIES(channels PROPERTIES LINKER_LANGUAGE CXX)

哪里channels是子目录名。

虽然包含文件的搜索路径设置正确并且编译工作正常,但 KDevelop 没有看到 Connector.h头文件,因此,它的解析和代码/类浏览器不起作用。

我知道 .kdev_include_paths每个目录中的文件可能会解决问题。不幸的是,由于我们开发环境中的一些额外限制,这种方法可能不会被使用。

还有其他方法可以解决这个问题吗?

我在 RHEL 7.1 上使用 Intel C/C++ 编译器,KDevelop 5.0.4 从 AppImage 运行。

最佳答案

我发现并解决了一个类似的问题——看不到头文件和代码/类浏览器失败。原因原来是我的代码出错了。为了其他可能编写类似错误并到达此页面的人的利益,这是我做错的地方:

我在文件“myClass.hpp”中有一个只有标题的类和一个空的实现“myClass.cpp”。我的CmakeLists.txt 引用了实现,但我的实现没有包含#include "myClass.hpp"。 Kdevelop-5.1.0 中的效果是头文件没有作为程序的一部分进行解析 - 因此它的包含没有被读取,并且大部分代码都未能通过语义分析。

关于c++ - KDevelop 看不到 C++ 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com