我有一个具有以下结构的 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”。
我尝试将包含目录标记为包含项目源或标题,但这并没有解决它。有任何想法吗?
原文由 CPayne 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要创建一个
CMakeLists.txt
让 CLion 开心。声明所有源文件就足够了,您不必将 scons(或任何其他构建系统)转换为 cmake。你甚至不必手动编写 CMakeLists.txt,你可以让 CLion 来做:
File | New CMake Project from Sources...
(自 CLion 2019.2 起)File | Import project ... |
(老版CLion)然后指向包含您的项目的目录。
现在编辑生成的
CMakeLists.txt
并添加一个 cmake 命令来告诉 CLion 在哪里可以找到包含(实际上是告诉编译器,CLion 将重用该信息)。由于您的源文件使用包含作为
#include "my_includes/my_own.hpp"
,您需要告诉 cmake 包含目录的基本目录my_includes
:其中点表示与包含
CMakeLists.txt
的目录相同的目录。我测试了一个重现您的布局的项目,并且从
my_src.cpp
我可以导航到my_own.hpp
。然后要构建,您仍然必须在控制台中使用 scons。也可以添加一个 cmake 命令
add_custom_target()
它将调用您的 scons(或您的 make 或其他),以便您也可以从 CLion 导航到构建错误。