CLion 索引器无法解析项目目录中的某些包含

新手上路,请多包涵

我有一个具有以下结构的 CLion C++ 项目:

     project
       ---->my_includes
       |   ----> my_own.hpp
       ---->source
           ----> my_app
               ----> my_src.cpp

my_src.cpp 的第一行是

#include "my_includes/my_own.hpp"

我使用需要这种包含格式的外部构建系统。问题是如果我在包含的标头中定义的源文件中使用函数,如果我尝试将鼠标悬停在包含上,CLion 会说“找不到 my_own.hpp”。

我尝试将包含目录标记为包含项目源或标题,但这并没有解决它。有任何想法吗?

原文由 CPayne 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
2 个回答

您需要创建一个 CMakeLists.txt 让 CLion 开心。声明所有源文件就足够了,您不必将 scons(或任何其他构建系统)转换为 cmake。

你甚至不必手动编写 CMakeLists.txt,你可以让 CLion 来做:

  • File | New CMake Project from Sources... (自 CLion 2019.2 起)
  • File | Import project ... | (老版CLion)

然后指向包含您的项目的目录。

现在编辑生成的 CMakeLists.txt 并添加一个 cmake 命令来告诉 CLion 在哪里可以找到包含(实际上是告诉编译器,CLion 将重用该信息)。

由于您的源文件使用包含作为 #include "my_includes/my_own.hpp" ,您需要告诉 cmake 包含目录的基本目录 my_includes

 include_directories(.)

其中点表示与包含 CMakeLists.txt 的目录相同的目录。

我测试了一个重现您的布局的项目,并且从 my_src.cpp 我可以导航到 my_own.hpp

然后要构建,您仍然必须在控制台中使用 scons。也可以添加一个 cmake 命令 add_custom_target() 它将调用您的 scons(或您的 make 或其他),以便您也可以从 CLion 导航到构建错误。

原文由 marco.m 发布,翻译遵循 CC BY-SA 4.0 许可协议

这应该是一个基于 CMake 的项目,可以在 CLion 中正确打开。如果您是 CMake 新手,请查看 CMake 基础教程: https ://www.jetbrains.com/help/clion/2016.1/quick-cmake-tutorial.html

原文由 nastasiak2512 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏