如何在C中包含一个库文件夹?

时间:2019-03-09 21:10:35

标签: c include libraries clion robotics

我正在尝试包含一个包含约60个.h和.hpp文件的组合的文件夹。此文件夹包含用于为机器人进行Botball竞赛的Wallaby(类似于微型计算机的设备)对机器人进行编程的库。 includemain.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获得了我正在使用的包含文件夹。这个链接是由Botball组织者之一提供给我的。因此,尝试下载该库的主要目的是,即使我没有连接到Wallaby,也可以编写并成功编译代码。希望这提供了一些相关的上下文。

谢谢您的回答!

2 个答案:

答案 0 :(得分:0)

CLion是Clang和GCC的IDE。通过指定-I<path>命令行参数,指示这些编译器搜索包含文件的路径。可以指定任何数字,并按照给定的顺序搜索它们,找到的第一个匹配项是包含的文件。

我对CLion并不特别熟悉,但是毫无疑问,它在某个对话框中可以设置头文件搜索路径。


编辑:似乎CLion可能不会使它如此简单。我知道您必须通过CMake然后添加:https://cmake.org/cmake/help/v3.0/command/include_directories.html#command:include_directories,但是在那之后,IDE将无法识别编辑器中的标头,并且会向您警告无法识别的文件,并且将不提供代码理解功能。我仍然相信它会建立。

答案 1 :(得分:0)

我要做的是

(可能使用脚本工具或特定程序)创建一个“ 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”。