C++ CLion无法检测来自源的类,并且没有intellisense/代码完成

C++ CLion无法检测来自源的类,并且没有intellisense/代码完成,c++,clion,jetbrains-ide,C++,Clion,Jetbrains Ide,我正在使用CLion,因此我(希望)能够: 对于作为C++文件注册的文件类型进行代码完成 (在我的例子中,文件类型称为.hps) 充分利用错误跟踪功能和所有 我的.hps文件上的intellisense 能够使用位于不同位置的其他hps文件中的类 我的项目中的文件夹 一般C++风格着色正在工作,但是,CYON将不会通知我关于HPS文件中的语法错误: CLion找不到我包含的源文件,因此也找不到 检测在其他hps文件中声明的任何类及其 方法(包括hps文件所在的所有文件夹) 在名为“scr

我正在使用CLion,因此我(希望)能够:

  • 对于作为C++文件注册的文件类型进行代码完成 (在我的例子中,文件类型称为.hps)
  • 充分利用错误跟踪功能和所有 我的.hps文件上的intellisense
  • 能够使用位于不同位置的其他hps文件中的类 我的项目中的文件夹

一般C++风格着色正在工作,但是,CYON将不会通知我关于HPS文件中的语法错误:

  • CLion找不到我包含的源文件,因此也找不到 检测在其他hps文件中声明的任何类及其 方法(包括hps文件所在的所有文件夹) 在名为“script”的文件夹中
实施我试图包括的内容:

正如您所见,它不会检测到它:

现在,这是我的项目的设置:

  • 我的项目位于文件夹中并已打开,该文件夹中有一个文件夹 它称为“脚本”,其中包含的所有.hps文件都是 在那里
  • 我已经设置了一个在MinGW环境下运行的CMakeLists.txt文件 是该文件的完整内容:

  • 在我的父文件夹中有一个名为hps_api.hps的文件 还包含类声明。请注意,CLion不会检测 我也一样。我做错什么了吗?我唯一能做的就是 我做的是将include目录添加到cmake文件中,但我猜 这还不够吗
  • 例如,在另一个名为CodeLite的程序中,只需在列表中添加一个搜索要包含的文件的路径,然后CodeLite解析这些文件,我就可以毫无问题地进入类的声明。当然,CLion也可以这样做,对吗?

    语法错误 是否有可能从文件菜单激活了省电模式?如果激活,某些代码解析功能可能会被禁用

    文件类型.hps 我猜您已经在
    设置->编辑器->文件类型
    中将文件类型
    .hps
    注册为C/C++文件。如果没有,您应该注册它

    克马克主义者 您可能需要配置更多属性,如项目名称和目标,以便将项目与您正在使用的文件关联

    cmake_minimum_required(VERSION 3.12)
    project(YourProjectName VERSION 0.1.0)
    
    include_directories(script/agents)
    include_directories(script/areas)
    include_directories(script/base)
    
    add_executable(YourProjectName main.cpp header1.hpp source1.cpp path/to/header2.hpp path/to/source2.cpp)
    
    如果您不是在构建可执行文件,而是在构建库,则可能需要使用
    add\u library
    。有关语法,请检查

    我希望这有帮助!

    语法错误 是否有可能从文件菜单激活了省电模式?如果激活,某些代码解析功能可能会被禁用

    文件类型.hps 我猜您已经在
    设置->编辑器->文件类型
    中将文件类型
    .hps
    注册为C/C++文件。如果没有,您应该注册它

    克马克主义者 您可能需要配置更多属性,如项目名称和目标,以便将项目与您正在使用的文件关联

    cmake_minimum_required(VERSION 3.12)
    project(YourProjectName VERSION 0.1.0)
    
    include_directories(script/agents)
    include_directories(script/areas)
    include_directories(script/base)
    
    add_executable(YourProjectName main.cpp header1.hpp source1.cpp path/to/header2.hpp path/to/source2.cpp)
    
    如果您不是在构建可执行文件,而是在构建库,则可能需要使用
    add\u library
    。有关语法,请检查


    我希望这有帮助。< /强>

    因为我没有源码,我不能编译它。我只有这些文件来描述类。它不能自己解释吗?这些文件不是来自另一个项目。它们只是我在我的项目中声明的文件夹中的文件。这些不是直接的C++,而是它们的格式,所以我怀疑是否存在。是的,CyLon把它们看作是一个普通的C++文件,这将使我能够使用代码完成,所有这些都是。YEP。工具链中的每件事情都是好的,当我创建一个普通的C++项目时,一切都很好。这意味着我的项目的设置,以及HPS文件,可能是错误的。BTW,我没有把HPS文件添加到库。如何做好事情是,idk如何为我指定的用途设置它我不是在创建一个可执行文件。简单地说,我只想创建一个项目,让我用代码完成和intellisense编辑这些hps脚本,我甚至不想或不需要在以后构建该项目。为此,我需要设置cmake file查找hps文件的包含路径,对吗?我没有收到这样的消息,因为我没有源代码,所以无法编译。我只有这些描述类的文件。它不能自己解释吗?这些文件不是来自另一个项目。它们只是我声明为我的项目的文件夹中的文件。这些文件不是直接的c++但是它们的格式是,所以我想知道有没有一种方法把CHILN看作是一个普通的C++文件,这将使我能够使用代码完成,所有这些。YEP。工具链中的每件事情都是好的,当我创建一个普通的C++项目时,一切都很好。这意味着我的项目的设置,以及HPS文件,可能是错误的。我不会将hps文件添加到库中。Idk如何做好这件事,是Idk如何为我指定的用途设置它。我不是在创建一个可执行文件。简单地说,我只想创建一个项目,让我用代码完成和intellisense编辑这些hps脚本,我甚至不想或不需要在后面构建项目为此,我需要设置cmake文件以查找hps文件的包含路径,对吗?我没有收到这样的消息我编写了以下脚本:但我收到了这些错误:也许本文将帮助您:这里有一个解决链接器语言错误的答案:…您需要添加
    set\u target\u属性(MyTarget PROPERTIES LINKER_LANGUAGE CXX)
    在您的目标声明之后,其中
    MyTarget
    是您的库/可执行文件名,您这样指定:
    add_可执行文件(MyTarget file1.hps file2.hps…
    我编写了以下脚本: