我正在尝试包含一个包含大约60个.h和.hpp文件组合的文件夹。该文件夹包含用于编程机器人的库,其中包含用于Botball竞赛的Wallaby(类似迷你计算机的设备)。 include
与main.c
(code
内)位于同一地点。到目前为止,这是我的包含库的标题:
#include "../code/include/accel.h"
就像accel.h
一样,我在include
里面还有60个其他.h和.hpp文件。所以,回答我的问题,我是否需要输入所有60个标题行?或者有没有办法包括include
文件夹。
我正在使用Clion这个项目,如果我不能包含文件夹本身,有没有人知道Clion中的快捷方式包含include
中的所有文件。
我还想考虑使用某种占位符作为文件夹名称,只指定文件类型。所以,例如:#include "../code/include/(generic placeholder name).h"
。我不知道这样的事情是否存在。
我还要求你记住我是编程的初学者,所以请保持简单的答案。
这只是一些额外的信息:
Wallaby是一台小型计算机,您可以连接传感器,电机,伺服器和摄像机,以控制机器人进行Botball比赛。通常,人们可以通过Wifi Direct或电缆连接到Wallaby,并通过在线界面直接在其上编写程序(不完全确定它的含义,但你只需在浏览器中输入IP地址即可一个可以创建项目和代码的界面)。在该界面中编写的所有代码都直接保存在Wallaby上。这里默认的include语句是#include <kipr/botball.h>
,所以我假设botball.h
(位于Wallaby的存储上)将所有这60个库合并在其中。我从GitHub获得了我正在使用的include文件夹。这个链接是由一个Botball组织者提供给我的。因此,我尝试下载库的主要观点是,即使我没有连接到Wallaby,我也可以编写并成功编译代码。希望这提供了一些相关的背景。
谢谢您的回答!
我要做的是
创建(可能使用脚本工具或特定程序)“all.h”文件,其中包含所有其他头文件
#ifndef ALL_INCLUDED
#define ALL_INCLUDED
#include "accel.h"
#include "bccel.h"
//...
#include "zccel.h"
#endif
在主文件中包含“all.h”
#include "../code/include/all.h"
每次构建代码时都可以自动创建“all.h”。
CLion是Clang和GCC的IDE。指示这些编译器通过指定-I<path>
命令行参数来搜索包含文件的路径。可以指定任何数字,并按给定的顺序搜索它们,找到的第一个匹配项是包含的文件。
我不熟悉CLion,但毫无疑问它有一个对话框,您可以在其中设置头文件搜索路径。
编辑:似乎CLion可能不会这么直截了当。我知道您必须通过CMake添加:https://cmake.org/cmake/help/v3.0/command/include_directories.html#command:include_directories,但之后,IDE将无法识别编辑器中的标题,并会警告您无法识别的文件,并且不会提供代码理解功能。我相信它会建立起来。