C 保存后不会编译Arduino代码

C 保存后不会编译Arduino代码,c,compilation,arduino,C,Compilation,Arduino,每次我在不保存的情况下运行下面的代码时,它都会编译。当我保存它时,会出现以下错误: C:\Program Files x86\Arduino\Arduino-1.0.4\hardware\Arduino\cores\Arduino/main.cpp:11:未定义对“安装程序”的引用 C:\Program Files x86\Arduino\Arduino-1.0.4\hardware\Arduino\cores\Arduino/main.cpp:14:对“循环”的未定义引用 我已经尝试删除C:\

每次我在不保存的情况下运行下面的代码时,它都会编译。当我保存它时,会出现以下错误:

C:\Program Files x86\Arduino\Arduino-1.0.4\hardware\Arduino\cores\Arduino/main.cpp:11:未定义对“安装程序”的引用

C:\Program Files x86\Arduino\Arduino-1.0.4\hardware\Arduino\cores\Arduino/main.cpp:14:对“循环”的未定义引用

我已经尝试删除C:\Program Files x86中的Arduino文件夹,下载并更新驱动程序

其他程序似乎运行良好。我怎样才能修复它,出了什么问题

#define m_pin1 13
#define m_pin2 12
#define sensorPin 0

int val1;
int val2;
int avg;
int threshold;
int flipTimer = 100;

void setup(){
    pinMode(m_pin1, OUTPUT);
    pinMode(m_pin2, OUTPUT);
    pinMode(sensorPin, INPUT);
    Serial.begin(9600);
    Serial.println("Sensor 1 Average:");
}

void loop(){
    moisture_val();
}

int moisture_val(){
    setSensorPolarity(true);
    delay(flipTimer);
    int val1 = analogRead(sensorPin);
    delay(flipTimer);
    setSensorPolarity(false);
    delay(flipTimer);
    int avg = reportLevels(val1,val2);
    int val2 = 1023 - analogRead(sensorPin);
}

void setSensorPolarity(boolean flip){
    if(flip){
        digitalWrite(m_pin1, HIGH);
        digitalWrite(m_pin2, LOW);
    }
    else{
        digitalWrite(m_pin1, LOW);
        digitalWrite(m_pin2, HIGH);
    }
}

int reportLevels(int val1,int val2){
    int avg = (val1 + val2) / 2;
    return(avg);
}

IDE希望在同名文件夹中找到该文件。看一看文件和文件夹的结构,它们可以正常工作。一旦名字匹配,问题就消失了。如果不是这样,请将IDE切换到详细版本进行编译。这将允许您找到处理实际C源代码的临时文件夹。然后,您可以查看实际编译和链接的程序。这对于找出真正的问题有很大帮助


在分析详细的编译器输出时,您可能还需要查看的详细信息。

您只需在“外部编辑器”的首选项中插入“选择”。 说明:选择页面时,arduino为灰色,您可以编写程序。 因此,当您想要从ardublock传输到arduino时,您的代码不被接受,这是正常的,因为ardublock不是arduino的外部编辑器。
取消选择,您的arduino页面开始为白色,您可以从ardublock编写代码和传输代码。我也遇到了同样的问题,我使用了它,然后它就运行了。祝您玩得开心:

arduino对您创建的草图的名称有非常具体的要求。如果将其保存为Main或Main,则需要将其保存在其他位置的其他名称下。

我发现了问题: INO文件名不能与类名相同

我有三个文件: DB1280.ino DB1280.cpp DB1280.h 编译错误出现了。
所以我更改了db280.ino的名称。例如SimpleDB1280.ino。错误消失了。

这里也有同样的问题。通过删除项目名称中的空间字符修复了此问题。

简化项目名称 我已使用“另存为”将项目名称更改为我的项目。这导致了您发布的错误


要解决这个问题,请简化项目名称,从项目名称中排除特殊字符,如-。

我假定您选择了正确的线路板、程序员等。?看起来很难,但是Arduino编译器可以提供时髦的消息…是的,我已经确保其他一切都是正确的。我甚至删除了驱动程序并重新安装了它。我想代码没有问题吧?你有没有给文件起个奇怪的名字?因为它看起来没有链接到你的文件。或者,我应该说,当它进行链接时,它找不到在您的文件中明确定义的设置和循环函数。@Aaron-我还没有看到任何东西。你说错误在11号和14号。这些是哪几行?另外,如果你加载了一些可以工作的东西,比如blink,并将此代码添加到其中,该怎么办?请提供更多关于删除了哪个特殊字符并修复了它的详细信息。此答案太短,可能对其他人没有太大帮助。准确地说,如果我理解正确,.ino文件必须与包含它的文件夹同名,并且最终其他库文件.h、.cpp不能具有相同的名称,无论其扩展名是否为+1,在我的项目中,命名core.ino文件(其中包含setup&loop函数)及其封闭文件夹main导致了这个问题。请注意,只有在Windows 8.1上构建Mac OSX 10.10.5时才会发生这种情况,其中包含名为main的文件夹和.ino文件,没有任何问题