如何设置特定的avr-gcc包含路径

时间:2014-06-15 16:57:01

标签: c gcc path

您好我的问题是如何添加avr-gcc的特定路径。当我使用时:

#include <LiquidCrystal.h>

输出是:

fatal error: LiquidCrystal.h: No such file or directory

当我使用直接路径时:

#include "/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h"

输出是:

/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h:5:19: 
fatal error: Print.h: No such file or directory

那么如何为avr-gcc添加一些特定路径?谢谢。当我从Arduino IDE运行它时,我的代码工作。

2 个答案:

答案 0 :(得分:1)

从/ usr / include中的LiquidCrystal复制所有头文件。然后使用

#include <LiquidCrystal.h>

这样可行。

答案 1 :(得分:0)

告诉C预处理器在其他地方查找头文件:将private static final String linebreak = "\n"; // or "\r\n"; public static String wrap(String string, int lineLength) { StringBuilder b = new StringBuilder(); for (String line : string.split(Pattern.quote(linebreak))) { b.append(wrapLine(line, lineLength)); } return b.toString(); } private static String wrapLine(String line, int lineLength) { if (line.length() == 0) return linebreak; if (line.length() <= lineLength) return line + linebreak; String[] words = line.split(" "); StringBuilder allLines = new StringBuilder(); StringBuilder trimmedLine = new StringBuilder(); for (String word : words) { if (trimmedLine.length() + 1 + word.length() <= lineLength) { trimmedLine.append(word).append(" "); } else { allLines.append(trimmedLine).append(linebreak); trimmedLine = new StringBuilder(); trimmedLine.append(word).append(" "); } } if (trimmedLine.length() > 0) { allLines.append(trimmedLine); } allLines.append(linebreak); return allLines.toString(); } 添加到-I/usr/share/arduino/libraries/LiquidCrystal编译器命令行。

通常,您可以在avr-gcc的某处将-I...参数添加到CPPFLAGS

然后

Makefile

应按预期工作,当#include <LiquidChrystal.h> 尝试/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h时,C预处理器将找到#include <Print.h>文件。