Error on GY-271 compass

Hello i got this error and dont know how to solve it. I usually want to make a follow-me robot where i put the coordinates and the robot will go to it.

C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:34:7: error: ambiguating new declaration of 'float getHeading()'
 float getHeading(){
       ^~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\last.ino:86:8: note: old declaration 'double getHeading()'
 double getHeading() {
        ^~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\last.ino: In function 'void setup()':
C:\Users\Azri\Documents\Arduino\last\last.ino:39:11: error: 'class HMC5883L' has no member named 'setScale'; did you mean 'setRange'?
   compass.setScale(1.3); // Set measurement range
           ^~~~~~~~
           setRange
C:\Users\Azri\Documents\Arduino\last\last.ino:40:30: error: 'Measurement_Continuous' was not declared in this scope
   compass.setMeasurementMode(Measurement_Continuous); // Set to continuous measurement mode
                              ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino: At global scope:
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:4:10: error: redefinition of 'HMC5883L compass'
 HMC5883L compass;
          ^~~~~~~
C:\Users\Azri\Documents\Arduino\last\last.ino:16:10: note: 'HMC5883L compass' previously declared here
 HMC5883L compass;
          ^~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino: In function 'void setup()':
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:7:6: error: redefinition of 'void setup()'
 void setup(){
      ^~~~~
C:\Users\Azri\Documents\Arduino\last\last.ino:22:6: note: 'void setup()' previously defined here
 void setup() {
      ^~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino: In function 'void loop()':
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:16:6: error: redefinition of 'void loop()'
 void loop(){
      ^~~~
C:\Users\Azri\Documents\Arduino\last\last.ino:43:6: note: 'void loop()' previously defined here
 void loop() {
      ^~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino: In function 'void setupHMC5883L()':
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:27:19: error: 'class HMC5883L' has no member named 'SetScale'
   error = compass.SetScale(1.3); //Set the scale of the compass.
                   ^~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:28:41: error: 'class HMC5883L' has no member named 'GetErrorText'
   if(error != 0) Serial.println(compass.GetErrorText(error)); //check if there is an error, and print if so
                                         ^~~~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:30:19: error: 'class HMC5883L' has no member named 'SetMeasurementMode'; did you mean 'setMeasurementMode'?
   error = compass.SetMeasurementMode(Measurement_Continuous); // Set the measurement mode to Continuous
                   ^~~~~~~~~~~~~~~~~~
                   setMeasurementMode
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:30:38: error: 'Measurement_Continuous' was not declared in this scope
   error = compass.SetMeasurementMode(Measurement_Continuous); // Set the measurement mode to Continuous
                                      ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:31:41: error: 'class HMC5883L' has no member named 'GetErrorText'
   if(error != 0) Serial.println(compass.GetErrorText(error)); //check if there is an error, and print if so
                                         ^~~~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino: In function 'float getHeading()':
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:34:7: error: ambiguating new declaration of 'float getHeading()'
 float getHeading(){
       ^~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\last.ino:86:8: note: old declaration 'double getHeading()'
 double getHeading() {
        ^~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:36:3: error: 'MagnetometerScaled' was not declared in this scope
   MagnetometerScaled scaled = compass.ReadScaledAxis(); //scaled values from compass.
   ^~~~~~~~~~~~~~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:37:25: error: 'scaled' was not declared in this scope
   float heading = atan2(scaled.YAxis, scaled.XAxis);
                         ^~~~~~
C:\Users\Azri\Documents\Arduino\last\HMC5883L_Simple.ino:37:25: note: suggested alternative: 'srand'
   float heading = atan2(scaled.YAxis, scaled.XAxis);
                         ^~~~~~
                         srand
Multiple libraries were found for "HMC5883L.h"
  Used: C:\Users\Azri\Documents\Arduino\libraries\HMC5883L
  Not used: C:\Users\Azri\Documents\Arduino\libraries\Grove_3-Axis_Digital_Compass_HMC5883L
  Not used: C:\Users\Azri\Documents\Arduino\libraries\Firmware
exit status 1

Compilation error: ambiguating new declaration of 'float getHeading()'

and here the code im using:

#include <Wire.h>
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <HMC5883L.h>

#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
#define ENA 5
#define ENB 6

TinyGPSPlus gps;
SoftwareSerial bluetooth(0, 1); // RX, TX
SoftwareSerial gpsSerial(3, 4); // RX, TX
HMC5883L compass;

double targetLat = 0.0; // Set your target latitude
double targetLng = 0.0; // Set your target longitude
bool targetSet = false;

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  
  bluetooth.begin(9600);
  gpsSerial.begin(9600);
  Serial.begin(9600);

  Wire.begin();
  if (!compass.begin()) {
    Serial.println("Could not find a valid HMC5883L sensor, check wiring!");
    while (1);
  }
  compass.setScale(1.3); // Set measurement range
  compass.setMeasurementMode(Measurement_Continuous); // Set to continuous measurement mode
}

void loop() {
  while (gpsSerial.available() > 0) {
    gps.encode(gpsSerial.read());
  }
  
  if (bluetooth.available()) {
    String data = bluetooth.readStringUntil('\n');
    parseBluetoothData(data);
  }
  
  if (gps.location.isValid() && targetSet) {
    double currentLat = gps.location.lat();
    double currentLng = gps.location.lng();
    
    double targetBearing = calculateBearing(currentLat, currentLng, targetLat, targetLng);
    double currentHeading = getHeading();
    
    double bearingDifference = targetBearing - currentHeading;
    
    if (abs(bearingDifference) < 10) {
      moveForward();
    } else if (bearingDifference > 0) {
      turnRight();
    } else {
      turnLeft();
    }
  } else {
    stopMotors();
  }
  
  delay(500);
}

double calculateBearing(double lat1, double lng1, double lat2, double lng2) {
  double dLon = radians(lng2 - lng1);
  double y = sin(dLon) * cos(radians(lat2));
  double x = cos(radians(lat1)) * sin(radians(lat2)) - sin(radians(lat1)) * cos(radians(lat2)) * cos(dLon);
  double brng = atan2(y, x);
  brng = degrees(brng);
  brng = fmod((brng + 360), 360); // Normalize to 0-360
  return brng;
}

double getHeading() {
  Vector norm = compass.readNormalize();
  float heading = atan2(norm.YAxis, norm.XAxis);
  if (heading < 0) heading += 2 * M_PI;
  float headingDegrees = heading * 180/M_PI;
  return headingDegrees;
}

void moveForward() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, 255);
  analogWrite(ENB, 255);
}

void moveBackward() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  analogWrite(ENA, 255);
  analogWrite(ENB, 255);
}

void turnLeft() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, 255);
  analogWrite(ENB, 255);
}

void turnRight() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  analogWrite(ENA, 255);
  analogWrite(ENB, 255);
}

void stopMotors() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
}

void parseBluetoothData(String data) {
  int commaIndex = data.indexOf(',');
  if (commaIndex > 0) {
    String latString = data.substring(0, commaIndex);
    String lngString = data.substring(commaIndex + 1);
    
    targetLat = latString.toDouble();
    targetLng = lngString.toDouble();
    targetSet = true;
    
    bluetooth.print("Target set to: ");
    bluetooth.print(targetLat, 6);
    bluetooth.print(", ");
    bluetooth.println(targetLng, 6);
  }
}

You probably made a backup (copy) of your ino file in the same directory as the one that you're trying to compile.

Delete the one that you don't want to use.

A sketch is not an ino file but the directory that contains that ino file (and has the same name as the main ino file). If you want to create a backup, either use file/save as or (at the operating system level) make a copy of the sketch directory.