Using C++ and Xcode I always run into this problem where linker command fails. I don't know what this means. I'm creating an elementary program that consists of 3 files. A main.cpp, and a class file that has a header. The main file is empty. This what the other two look like:
student.hpp :
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
#include <sstream>
std::string line;
class Student{
public:
    std::string fullName;
    int projectGrade;
    int quizGrade;
    int midtermGrade;
    int finalGrade;
    int finish;
    int start = 14;
    std::string getStudentName();
    int getProjectGrade();
    int getQuizGrade();
    int getMidtermGrade();
    int getFinalGrade();
    double getOverallGrade();
    bool login(std::string username, std::string password);
    bool login(std::string username);
};
student.cpp:
#include "student.hpp"
std::string Student::getStudentName(){
    finish = line.find("\t", start);
    fullName = line.substr(start, finish);
    return fullName;
}
int Student::getProjectGrade(){
    start = line.find("\t", start) + finish;
    finish = start + 2;
    std::stringstream stream(line.substr(start, 2));
    stream >> projectGrade;
    return projectGrade;
}
int Student::getQuizGrade(){
    start+=3;
    std::stringstream stream(line.substr(start, 2));
    stream >> quizGrade;
    return quizGrade;
}
int Student::getMidtermGrade(){
    start+=3;
    std::stringstream stream(line.substr(start, 2));
    stream >> midtermGrade;
    return midtermGrade;
}
int Student::getFinalGrade(){
    start+=3;
    std::stringstream stream(line.substr(start, 2));
    stream >> finalGrade;
    return finalGrade;
}
double Student::getOverallGrade(){
    return round((projectGrade + quizGrade + midtermGrade + finalGrade)/40)*10;
}
bool Student::login(std::string username, std::string password){
    std::ifstream studentFile;
    studentFile.open("/Users/griffin/desktop/Data Structures/Data Structures1/Data Structures1/Students.txt");
    if(studentFile.is_open()){
        while(getline (studentFile,line))
        {
            if ((username.length() == 7 && username.substr(0,4).compare("u000") == 0 && line.find(username) != std::string::npos) && (password.length() == 6 && password.substr(0,2).compare("pw") == 0 && line.find(password) != std::string::npos))
                return true;
        }
    }
    return false;
}
bool Student::login(std::string username){
    std::ifstream studentFile;
    studentFile.open("/Users/griffin/desktop/Data Structures/Data Structures1/Data Structures1/Students.txt");
    if(studentFile.is_open()){
        while(getline (studentFile,line))
        {
            if (username.length() == 7 && username.substr(0,4).compare("u000") == 0 && line.find(username) != std::string::npos)
                return true;
        }
    }
    return false;
}
The main file includes student.hpp. Is this a problem on Xcode's end or do I have an error in my code?
Main.cpp
#include "student.hpp"    
int main(int argc, const char * argv[]) {
    return 0;
}
 
     
    