使用子文件夹中的头文件

时间:2016-10-19 13:28:21

标签: arduino include arduino-ide

Arduino IDE在包含我的头文件时遇到问题,而且我不确定原因。

这是我的项目结构:

project/
 ├ project.ino
 ├ README.md
 └ src/
    └ foo.h

然后我在project.ino文件中有以下内容:

#include "src/foo.h"

void init() {
    // init stuff
}

void loop() {
    // loop stuff
}

当我尝试编译时,我收到以下错误:

fatal error: src/foo.h: No such file or directory

我真的必须将所有项目文件放在同一个文件夹中吗?

我不想将文件放在library/中,因为整个项目应该从GitHub中提取,因此将它放在同一个根文件夹中会更方便。

我在这里做错了什么,为什么找不到我的文件?

PS:写#include "./src/foo.h"无法解决这个问题

2 个答案:

答案 0 :(得分:0)

如果您使用的是Windows,则应该像

include "src\foo.h"

对于Windows,您应该使用正斜杠而使用基于Unix的系统的背景斜杠(Mac / Linux)

答案 1 :(得分:0)

如果您使用的是Windows,请使用

WITH Nums(Num) AS ( SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 0)) FROM (VALUES (01),(02),(03),(04),(05), (06),(07),(08),(09),(10), (11),(12),(13),(14),(15), (16),(17),(18),(19),(20), (21),(22),(23),(24),(25), (26),(27),(28),(29),(30) )V(N) ) SELECT yt.*, ca.extractedNumbers FROM dbo.YourTable yt CROSS APPLY (SELECT d.character AS [text()] FROM (SELECT character = SUBSTRING(StringField, Nums.Num, 1), Nums.Num FROM Nums WHERE Nums.Num <= LEN(yt.StringField)) d WHERE d.character LIKE '[0-9]' ORDER BY d.Num FOR XML PATH('')) ca(extractedNumbers);

对于Linux和MacOS,使用

<form id="contact-form" class="needs-validation" action="index13.php" method="post" novalidate >

Arduino出现异常行为的原因是.ino文件经过了预处理,并与其他库以及.cpp和.h文件一起复制到了临时目录中。 Arduino软件将这些文件复制到临时目录,但不复制文件夹。