首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >告诉CLion使用头包含带前缀的路径

告诉CLion使用头包含带前缀的路径
EN

Stack Overflow用户
提问于 2016-04-14 10:07:09
回答 2查看 6.3K关注 0票数 4

我有一个项目布局如下:

  • 工作区
    • project_a
      • project_a -> .h文件
      • 根-> .cxx文件

代码语言:javascript
运行
复制
- project\_b  
    - project\_b -> .h files here
    - Root -> .cxx files here

由于我们正在使用的构建系统,我无法更改目录布局。标头包含在

#include "project_a/some_header.h

也来自相应的.cxx文件。我已经在根目录中创建了一个CMakeLists.txt文件,它通过include_directories(project_a project_b)添加了我的所有项目,这个路径应该是#include中给定的路径的前缀。CLion无法找到和索引我的任何文件。

此外,我还有一个自动生成的结构头目录。

  • 包括
    • lib_a -> .h文件
    • lib_b -> .h文件

我已经相应地设置了它们,但是它也不起作用。

CLion没有解决#include中的前缀路径吗?或者为什么不能工作?

EN

回答 2

Stack Overflow用户

发布于 2020-07-21 11:27:45

在应该位于父文件夹中的CMakeList.txt中,在这种情况下添加“工作区”文件夹

代码语言:javascript
运行
复制
set(INCLUDE_DIRECTORIES ./)

例如,如果有一个包含包含文件的父文件夹:

  • 工作区
    • includes_folder
      • project_a
        • a.h

代码语言:javascript
运行
复制
- b.h: #include <project\_a/a.h>

那么CMakeList.txt应该包含

代码语言:javascript
运行
复制
set(INCLUDE_DIRECTORIES ./)
include_directories(includes_folder)
票数 3
EN

Stack Overflow用户

发布于 2016-04-14 11:55:55

如果唯一不起作用的是Clion对您的头的解释,那么您应该查看Clion常见问题。如果Clion没有按照您预期的方式工作,那么您的CMake项目可能无法正确设置,或者您可能在无意中做了一些事情。你应该给我们看看你的CMakeLists.txt。

来自Clion FAQ:

问: CLion找不到我的一些标题。它在哪里搜索它们?答: CLion在CMake做的相同的地方搜索。在INCLUDE_DIRECTORIES中设置CMake变量,为CMake提供标题路径。

顺便说一句,在这个维基中,您可以找到许多有用的CMake变量,如果您刚接触CMake,它们的描述会特别有用。

问:重构不起作用,高亮显示也是错误的,即使可以正确编译项目。发生什么事了?答: CLion很可能不知道您的项目中有一些文件(这些文件在项目树中是灰色的):非项目文件--它是通过以下方式从CMakeLists.txt文件中获取这些信息的:set(SOURCE_FILES main.cpp) add_executable(my_exec ${SOURCE_FILES}),这就是CLion现在如何知道main.cpp包含在您的项目中。目前,头文件(如果它们的名称与已经添加到.cpp变量中的适当SOURCE_FILES文件不同)也应该以这种方式包含在项目中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36619898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档