Unresolved External Help.

K

Kyle Sheldon

I'm currently working on a class "Course" and I'm getting an unresolved
external error when trying to compile.

I understand that unresolved externals are caused by declaration of methods
that are not defined, but I think I defined all my methods so this one has
got me stumped. Any help would be much appreciated.

Thank you for your time,

Kyle

course.h
--------
#ifndef COURSE_H
#define COURSE_H

#include <string>
using namespace std;

class Course
{
private:
string id;
int credithours;
string instructor;
string days;
string time;
string room;
int capacity;
string roster[50];
int size;
public:
Course();// Default Constructor
void ReadCourse(istream & fin);// Reads course information from file.
void WriteCourse(ostream & fout);// Writes course information to file.
void PrintData();// Prints's all data except roster to screen with labels.
void PrintRoster(ostream & out);// Prints Roster to any output stream.
void AddStudent(ostream & out, string newstudent);// Adds student to
roster.
};

#endif


Course.cpp
----------
#include "course.h"
#include <iostream>
using namespace std;

Course::Course()
{
id="0";
}

void Course::ReadCourse(istream & fin)// Reads course information from file.
{
fin >> id;
fin >> credithours;
getline(fin, instructor);
fin >> days;
getline(fin, time);
getline(fin, room);
fin >> capacity;
fin >> size;
for (int i=0; i<=size; i++)
{
getline(fin, roster);
}
}

void Course::WriteCourse(ostream & fout)// Writes course information to
file.
{
fout << id << " " << credithours << "\n";
fout << instructor << "\n";
fout << days << " " << time << "\n";
fout << room << "\n";
fout << capacity << " " << size << "\n";
for (int i=0; i<=size; i++)
{
fout << roster << "\n";
}
}

void Course::printData()// Prints's all data except roster to screen with
labels.
{
cout << "Course ID: " << id << endl;
cout << "Credits: " << credithours << endl;
cout << "Instructor: " << instructor << endl;
cout << "Days and Time: " << days << " " << time << endl;
cout << "Capacity: " << capacity << endl;
cout << "Enrolled: " << size << endl;
}

void Course::printRoster(ostream & out)// Prints Roster to any output
stream.
{
for (int i=0; i<=size; i++)
{
out << roster << endl;
}
}

void Course::AddStudent(ostream & out, string newstudent)// Adds student to
roster.
{
size+=1;
roster[size]=newstudent;
}

ERROR:
LIBCD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup
Debug/Project 1.exe : fatal error LNK1120: 1 unresolved externals
 
S

Simon Saunders

I'm currently working on a class "Course" and I'm getting an unresolved
external error when trying to compile.

I understand that unresolved externals are caused by declaration of
methods that are not defined, but I think I defined all my methods so
this one has got me stumped. Any help would be much appreciated.
ERROR:
LIBCD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup Debug/Project 1.exe : fatal error
LNK1120: 1 unresolved externals

Every C++ program needs a "main" function, either written by you or
provided implicitly by some library. I guess you need to write one.
 
V

Victor Bazarov

Kyle Sheldon said:
I'm currently working on a class "Course" and I'm getting an unresolved
external error when trying to compile.

Actually, you get this error when trying to _link_, not compile.
I understand that unresolved externals are caused by declaration of methods
that are not defined, but I think I defined all my methods so this one has
got me stumped. Any help would be much appreciated.
[...]

ERROR:
LIBCD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup
Debug/Project 1.exe : fatal error LNK1120: 1 unresolved externals

Every C++ program has to contain a function called 'main'. Execution
starts with it. When you try to link your [incomplete] program, your
compiler is trying to resolve a reference to 'main'. Two solutions:
either stop trying to link an incomplete program, or add 'main' function.

Victor
 
J

JHenstay

Kyle Sheldon said:
I'm currently working on a class "Course" and I'm getting an unresolved
external error when trying to compile.

I understand that unresolved externals are caused by declaration of methods
that are not defined, but I think I defined all my methods so this one has
got me stumped. Any help would be much appreciated.

Thank you for your time,

Kyle

course.h
--------
#ifndef COURSE_H
#define COURSE_H

#include <string>
using namespace std;

class Course
{
private:
string id;
int credithours;
string instructor;
string days;
string time;
string room;
int capacity;
string roster[50];
int size;
public:
Course();// Default Constructor
void ReadCourse(istream & fin);// Reads course information from file.
void WriteCourse(ostream & fout);// Writes course information to file.
void PrintData();// Prints's all data except roster to screen with labels.
void PrintRoster(ostream & out);// Prints Roster to any output stream.
void AddStudent(ostream & out, string newstudent);// Adds student to
roster.
};

#endif


Course.cpp
----------
#include "course.h"
#include <iostream>
using namespace std;

Course::Course()
{
id="0";
}

void Course::ReadCourse(istream & fin)// Reads course information from file.
{
fin >> id;
fin >> credithours;
getline(fin, instructor);
fin >> days;
getline(fin, time);
getline(fin, room);
fin >> capacity;
fin >> size;
for (int i=0; i<=size; i++)
{
getline(fin, roster);
}
}

void Course::WriteCourse(ostream & fout)// Writes course information to
file.
{
fout << id << " " << credithours << "\n";
fout << instructor << "\n";
fout << days << " " << time << "\n";
fout << room << "\n";
fout << capacity << " " << size << "\n";
for (int i=0; i<=size; i++)
{
fout << roster << "\n";
}
}

void Course::printData()// Prints's all data except roster to screen with
labels.
{
cout << "Course ID: " << id << endl;
cout << "Credits: " << credithours << endl;
cout << "Instructor: " << instructor << endl;
cout << "Days and Time: " << days << " " << time << endl;
cout << "Capacity: " << capacity << endl;
cout << "Enrolled: " << size << endl;
}

void Course::printRoster(ostream & out)// Prints Roster to any output
stream.
{
for (int i=0; i<=size; i++)
{
out << roster << endl;
}
}

void Course::AddStudent(ostream & out, string newstudent)// Adds student to
roster.
{
size+=1;
roster[size]=newstudent;
}

ERROR:
LIBCD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup
Debug/Project 1.exe : fatal error LNK1120: 1 unresolved externals



It looks like the problem is your project actually is missing a "main"
function for running. The code above defines a Class, but a Class by
itself doesn't do much. You need a program which instantiates the
Class as an Object, then you would utilize the Methods declared above
on the Object:

int main (void)
{
.....
Course Mathmatics = new Course;
Mathmatics->PrintRoster(pStdOut);
.....
}

If you create a program with a main function and link it with the
compiled OBJect file of your Class, you should not get that linkage
error.

-JH
 
P

puppet_sock

Kyle Sheldon said:
ERROR:
LIBCD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup
Debug/Project 1.exe : fatal error LNK1120: 1 unresolved externals

Good thing you included the error message.

You've not defined the symbol main. Probably you are using one of
Microsoft's compilers and have screwed up the type of project so
as to have it want a main when you've provided it something like
WinMain, or the other way around. It's nothing to do with the
code, so you need help from a windows coding group to solve it.
Socks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top