gpt4 book ai didi

c++ - 未定义对 Arduino C++ 中类函数的引用

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:45 24 4
gpt4 key购买 nike

我对 Arduino 还很陌生,最近得到了几个 VEX 机器人 3 线电机,我正试图用它们来构建一个简单的机器人。我正在为此编写一个库,并编写一个简单的代码来测试它。当我运行这段代码时,出现错误:

Arduino: 1.6.3 (Mac OS X), Board: "Arduino Uno"

RobotTestDrive.cpp.o: In function `setup':
/Users/pawlak/RobotTestDrive.ino:5: undefined reference to `RobotVEXMotor::RobotVEXMotor(int)'
/Users/pawlak/RobotTestDrive.ino:6: undefined reference to `RobotVEXMotor::RobotVEXMotor(int)'
/Users/pawlak/RobotTestDrive.ino:8: undefined reference to `RobotVEXMotor::SetInvert(bool)'
/Users/pawlak/RobotTestDrive.ino:10: undefined reference to `RobotVEXMotor::SetPower(long)'
/Users/pawlak/RobotTestDrive.ino:11: undefined reference to `RobotVEXMotor::SetPower(long)'
collect2: error: ld returned 1 exit status
Error compiling.

这是我正在使用的程序:

#include </Users/pawlak/Documents/Arduino/libraries/VEX_Robot_Control/VEX_Robot_Control.h>

void setup()
{
RobotVEXMotor LeftMotor(11);
RobotVEXMotor RightMotor(3);

LeftMotor.SetInvert(true);

LeftMotor.SetPower(1);
RightMotor.SetPower(1);
}

void loop()
{
}

这是 .h 文件:

#ifndef VEX_Robot_Control_h
#define VEX_Robot_Control_h

#include "Arduino.h"

class RobotVEXMotor
{
public:
RobotVEXMotor(int pin);
void SetPower(long power);
void SetInvert(bool yn);
private:
int m_pin;
int m_yn;
};

#endif

这是 .cpp 文件:

#include "Arduino.h"
#include "VEX_Robot_Control.h"


RobotVEXMotor::RobotVEXMotor(int pin)
{
pinMode(pin, OUTPUT);
m_pin = pin;
}

void RobotVEXMotor::SetPower(float power)
{
analogWrite(pin, int((m_yn * power * 126) + 127));
}

void RobotVEXMotor::SetInvert(bool yn) //since motors are mirror to each other
{
if(yn = true)
{
m_yn = -1;
}
else
{
m_yn = 1;
}
}

我知道这是过去出现过的话题;但是,我似乎无法按照不同线程上的说明解决问题。

最佳答案

#include-ing 源代码中库的 .h 是不够的;您还需要告诉链接器将二进制代码包含在您的可执行文件中。每https://www.arduino.cc/en/Reference/Libraries ,

To use a library in a sketch, select it from Sketch > Import Library.

关于c++ - 未定义对 Arduino C++ 中类函数的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34468779/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com