我有一个具有以下结构的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"如果我试图将鼠标悬停在包含物上。
我尝试将include目录标记为包含Project Source或Headers,但这并没有解决它。有什么想法吗?
答案 0 :(得分:18)
你需要为CLion创建一个CMakeLists.txt
才能开心。声明所有源文件就足够了,您不必将您的scons(或任何其他构建系统)转换为cmake。
您甚至不必手动编写CMakeLists.txt,您可以请求CLion执行此操作:File | Import project ... |
然后指向包含项目的目录。
现在编辑生成的CMakeLists.txt
并添加一个cmake命令告诉CLion在哪里找到包含(实际告诉编译器,CLion将重用该信息)。
由于您的源文件使用include作为#include "my_includes/my_own.hpp"
,您需要告诉cmake包含目录my_includes
的基目录:
include_directories(.)
其中点表示与包含CMakeLists.txt
的目录相同的目录。
我测试了一个重现布局的项目,并从my_src.cpp
我可以导航到my_own.hpp
。
然后构建你仍然必须在控制台中使用scons。也可以添加一个cmake命令add_custom_target()
来调用你的scons(或你的make,或其他),这样你也可以从CLion导航到构建错误。
答案 1 :(得分:0)
这应该是一个基于CMake的项目,可以在CLion中正确打开。 如果您不熟悉CMake,请查看CMake基础知识教程:https://www.jetbrains.com/help/clion/2016.1/quick-cmake-tutorial.html