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

CPa*_*yne 12 c++ clion

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

    project
       ---->my_includes
       |   ----> my_own.hpp
       ---->source
           ----> my_app
               ----> my_src.cpp
Run Code Online (Sandbox Code Playgroud)

my_src.cpp的第一行是

#include "my_includes/my_own.hpp"
Run Code Online (Sandbox Code Playgroud)

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

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

mar*_*o.m 22

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

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

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

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

include_directories(.)
Run Code Online (Sandbox Code Playgroud)

其中dot表示与包含该目录的目录相同的目录my_includes.

我测试了一个项目再现你的布局,CMakeLists.txt我可以导航到my_src.cpp.

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