我有一个项目布局如下:
- 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无法找到和索引我的任何文件。
此外,我还有一个自动生成的结构头目录。
我已经相应地设置了它们,但是它也不起作用。
CLion没有解决#include
中的前缀路径吗?或者为什么不能工作?
发布于 2020-07-21 11:27:45
在应该位于父文件夹中的CMakeList.txt中,在这种情况下添加“工作区”文件夹
set(INCLUDE_DIRECTORIES ./)
例如,如果有一个包含包含文件的父文件夹:
- b.h: #include <project\_a/a.h>
那么CMakeList.txt应该包含
set(INCLUDE_DIRECTORIES ./)
include_directories(includes_folder)
发布于 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文件不同)也应该以这种方式包含在项目中。
https://stackoverflow.com/questions/36619898
复制相似问题