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

问题描述 投票:0回答:2

我正在尝试包含一个包含大约60个.h和.hpp文件组合的文件夹。该文件夹包含用于编程机器人的库,其中包含用于Botball竞赛的Wallaby(类似迷你计算机的设备)。 includemain.ccode内)位于同一地点。到目前为止,这是我的包含库的标题:

#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,我也可以编写并成功编译代码。希望这提供了一些相关的背景。

谢谢您的回答!

c include libraries clion robotics
2个回答
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”。


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将无法识别编辑器中的标题,并会警告您无法识别的文件,并且不会提供代码理解功能。我相信它会建立起来。

© www.soinside.com 2019 - 2024. All rights reserved.