CLion索引器无法解析项目目录

时间:2016-03-23 22:28:32

标签: c++ 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"如果我试图将鼠标悬停在包含物上。

我尝试将include目录标记为包含Project Source或Headers,但这并没有解决它。有什么想法吗?

2 个答案:

答案 0 :(得分:18)

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

您甚至不必手动编写CMakeLists.txt,您可以请求CLion执行此操作:File | Import project ... |然后指向包含项目的目录。

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

由于您的源文件使用include作为#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导航到构建错误。

答案 1 :(得分:0)

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