Esp32 help with error

have code for profboots mini skid loader
code below trying to compile for esp32 board

/* ProfessorBoots
John Cheroske 1/6/2024
MiniSkidi 3.0

Thank you to the following people for contributing to this sketch
-TomVerr99 "Excellent Job organizing what was a very messy intial sketch"
-CrabRC "I dont even know where to start, but thank you for making numerous improvemnts/suggestions
across both mechanical designs and software."
-Fortinbra "Always willing to provide the discord group with a good meme or two, as well as lend a helping hand
in multiple ways."

Some tidbits to check

-Install the esp32 boards manager into the arduino IDE"
Programming Electronics Academy has a good tutorial: https://youtu.be/py91SMg_TeY?si=m1OWPBPlK-QHJ2Xx"
-Select "ESP32 Dev Module" under tools>Board>ESP32 Arduino before uploading sketch.
-The following include statements with comments "by -----" are libraries that can be installed
directly inside the arduino IDE under Sketch>Include Library>Manage Libraries
*/
#include <Arduino.h>

#include <ESP32Servo.h> // by Kevin Harrington
#include <ESPAsyncWebSrv.h> // by dvarrel
#include
#include

#if defined(ESP32)
#include <AsyncTCP.h> // by dvarrel
#include <WiFi.h>
#elif defined(ESP8266)
#include <ESPAsyncTCP.h> // by dvarrel
#endif

// defines
#define bucketServoPin 23
#define auxServoPin 22
#define lightPin1 18
#define lightPin2 5
#define UP 1
#define DOWN 2
#define LEFT 3
#define RIGHT 4
#define ARMUP 5
#define ARMDOWN 6
#define STOP 0

#define RIGHT_MOTOR 1
#define LEFT_MOTOR 0
#define ARM_MOTOR 2

#define FORWARD 1
#define BACKWARD -1

// global constants

extern const char* htmlHomePage PROGMEM;
const char* ssid = "ProfBoots MiniSkidi OG";

// global variables

Servo bucketServo;
Servo auxServo;

bool horizontalScreen;//When screen orientation is locked vertically this rotates the D-Pad controls so that forward would now be left.
bool removeArmMomentum = false;
bool light = false;

struct MOTOR_PINS
{
int pinIN1;
int pinIN2;
};

std::vector<MOTOR_PINS> motorPins =
{
{25, 26}, //RIGHT_MOTOR Pins (IN1, IN2)
{33, 32}, //LEFT_MOTOR Pins
{21, 19}, //ARM_MOTOR pins
};

AsyncWebServer server(80);
AsyncWebSocket wsCarInput("/CarInput");

void rotateMotor(int motorNumber, int motorDirection)
{
if (motorDirection == FORWARD)
{
digitalWrite(motorPins[motorNumber].pinIN1, HIGH);
digitalWrite(motorPins[motorNumber].pinIN2, LOW);
}
else if (motorDirection == BACKWARD)
{
digitalWrite(motorPins[motorNumber].pinIN1, LOW);
digitalWrite(motorPins[motorNumber].pinIN2, HIGH);
}
else
{
if (removeArmMomentum)
{
digitalWrite(motorPins[ARM_MOTOR].pinIN1, HIGH);
digitalWrite(motorPins[ARM_MOTOR].pinIN2, LOW);
delay(10);
digitalWrite(motorPins[motorNumber].pinIN1, LOW);
digitalWrite(motorPins[motorNumber].pinIN2, LOW);
delay(5);
digitalWrite(motorPins[ARM_MOTOR].pinIN1, HIGH);
digitalWrite(motorPins[ARM_MOTOR].pinIN2, LOW);
delay(10);
removeArmMomentum = false;
}
digitalWrite(motorPins[motorNumber].pinIN1, LOW);
digitalWrite(motorPins[motorNumber].pinIN2, LOW);
}
}

void moveCar(int inputValue)
{
Serial.printf("Got value as %d\n", inputValue);
if (!(horizontalScreen))
{
switch (inputValue)
{

  case UP:
    rotateMotor(RIGHT_MOTOR, FORWARD);
    rotateMotor(LEFT_MOTOR, FORWARD);
    break;

  case DOWN:
    rotateMotor(RIGHT_MOTOR, BACKWARD);
    rotateMotor(LEFT_MOTOR, BACKWARD);
    break;

  case LEFT:
    rotateMotor(RIGHT_MOTOR, BACKWARD);
    rotateMotor(LEFT_MOTOR, FORWARD);
    break;

  case RIGHT:
    rotateMotor(RIGHT_MOTOR, FORWARD);
    rotateMotor(LEFT_MOTOR, BACKWARD);
    break;

  case STOP:
    rotateMotor(ARM_MOTOR, STOP);
    rotateMotor(RIGHT_MOTOR, STOP);
    rotateMotor(LEFT_MOTOR, STOP);
    break;

  case ARMUP:
    rotateMotor(ARM_MOTOR, FORWARD);
    break;

  case ARMDOWN:
    rotateMotor(ARM_MOTOR, BACKWARD);
    removeArmMomentum = true;
    break;

  default:
    rotateMotor(ARM_MOTOR, STOP);
    rotateMotor(RIGHT_MOTOR, STOP);
    rotateMotor(LEFT_MOTOR, STOP);
    break;
}

} else {
switch (inputValue)
{
case UP:
rotateMotor(RIGHT_MOTOR, BACKWARD);
rotateMotor(LEFT_MOTOR, FORWARD);
break;

  case DOWN:
    rotateMotor(RIGHT_MOTOR, FORWARD);
    rotateMotor(LEFT_MOTOR, BACKWARD);
    break;

  case LEFT:
    rotateMotor(RIGHT_MOTOR, BACKWARD);
    rotateMotor(LEFT_MOTOR, BACKWARD);
    break;

  case RIGHT:
    rotateMotor(RIGHT_MOTOR, FORWARD);
    rotateMotor(LEFT_MOTOR, FORWARD);
    break;

  case STOP:
    rotateMotor(ARM_MOTOR, STOP);
    rotateMotor(RIGHT_MOTOR, STOP);
    rotateMotor(LEFT_MOTOR, STOP);
    break;

  case ARMUP:
    rotateMotor(ARM_MOTOR, FORWARD);
    break;

  case ARMDOWN:
    rotateMotor(ARM_MOTOR, BACKWARD);
    removeArmMomentum = true;
    break;

  default:
    rotateMotor(ARM_MOTOR, STOP);
    rotateMotor(RIGHT_MOTOR, STOP);
    rotateMotor(LEFT_MOTOR, STOP);
    break;
}

}
}

void bucketTilt(int bucketServoValue)
{
bucketServo.write(bucketServoValue);
}
void auxControl(int auxServoValue)
{
auxServo.write(auxServoValue);
}
void lightControl()
{
if (!light)
{
digitalWrite(lightPin1, HIGH);
digitalWrite(lightPin2, LOW);
light = true;
Serial.println("Made it to lights");
}
else
{
digitalWrite(lightPin1, LOW);
digitalWrite(lightPin2, LOW);
light = false;
}
}

void handleRoot(AsyncWebServerRequest *request)
{
request->send_P(200, "text/html", htmlHomePage);
}

void handleNotFound(AsyncWebServerRequest *request)
{
request->send(404, "text/plain", "File Not Found");
}

void onCarInputWebSocketEvent(AsyncWebSocket *server,
AsyncWebSocketClient *client,
AwsEventType type,
void *arg,
uint8_t *data,
size_t len)
{
switch (type)
{
case WS_EVT_CONNECT:
Serial.printf("WebSocket client #%u connected from %s\n", client->id(), client->remoteIP().toString().c_str());
break;
case WS_EVT_DISCONNECT:
Serial.printf("WebSocket client #%u disconnected\n", client->id());
moveCar(STOP);
break;
case WS_EVT_DATA:
AwsFrameInfo info;
info = (AwsFrameInfo
)arg;
if (info->final && info->index == 0 && info->len == len && info->opcode == WS_TEXT)
{
std::string myData = "";
myData.assign((char *)data, len);
std::istringstream ss(myData);
std::string key, value;
std::getline(ss, key, ',');
std::getline(ss, value, ',');
Serial.printf("Key [%s] Value[%s]\n", key.c_str(), value.c_str());
int valueInt = atoi(value.c_str());
if (key == "MoveCar")
{
moveCar(valueInt);
}
else if (key == "AUX")
{
auxControl(valueInt);
}
else if (key == "Bucket")
{
bucketTilt(valueInt);
}
else if (key == "Light")
{
lightControl();
}
else if (key == "Switch")
{
if (!(horizontalScreen))
{
horizontalScreen = true;
}
else {
horizontalScreen = false;
}
}
}
break;
case WS_EVT_PONG:
case WS_EVT_ERROR:
break;
default:
break;
}
}

void setUpPinModes()
{

for (int i = 0; i < motorPins.size(); i++)
{
pinMode(motorPins[i].pinIN1, OUTPUT);
pinMode(motorPins[i].pinIN2, OUTPUT);
}
moveCar(STOP);
bucketServo.attach(bucketServoPin);
auxServo.attach(auxServoPin);
auxControl(150);
bucketTilt(140);

pinMode(lightPin1, OUTPUT);
pinMode(lightPin2, OUTPUT);
}

void setup(void)
{
setUpPinModes();
Serial.begin(115200);

WiFi.softAP(ssid );
IPAddress IP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(IP);

server.on("/", HTTP_GET, handleRoot);
server.onNotFound(handleNotFound);

wsCarInput.onEvent(onCarInputWebSocketEvent);
server.addHandler(&wsCarInput);

server.begin();
Serial.println("HTTP server started");

}

void loop()
{
wsCarInput.cleanupClients();
}

getting error
C:/Users/andre/AppData/Local/Arduino15/packages/esp32/tools/esp-x32/2405/bin/../lib/gcc/xtensa-esp-elf/13.2.0/../../../../xtensa-esp-elf/bin/ld.exe: C:\Users\andre\AppData\Local\arduino\sketches\EE31A2D1A21ABD2494CE95E93EB8E3F9\libraries\ESPAsyncWebSrv\AsyncWebSocket.cpp.o:(.literal._ZN17AsyncWebLockGuardC5ERK12AsyncWebLock[_ZN17AsyncWebLockGuardC5ERK12AsyncWebLock]+0x0): undefined reference to `pxCurrentTCB'
collect2.exe: error: ld returned 1 exit status

i an not shaw to fix it

Edit your post and add code tags so we can try it.

What board are you using, most likely a wrong library is specified since the error is NOT in the posted code.