Error on compiling

This is my counting words code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
#include <list>
#include <string.h>
#include <cstring>
#include <algorithm>

using namespace std;

//This struct is to identify the words and do the counting inside the list.
typedef struct 
{
   string word;
   int count;
} Info;//The name of struct type

//This declaration is to find similar word inside the list, if it is equals then return the iterator.
list<Info>::iterator findSimilar(list<Info> &myList, string word) 
   {
      list<Info>::iterator it;
      for (it = myList.begin(); it != myList.end(); it++) 
      {
         if ((it->word).compare(word) == 0) 
      {
      return it;
   }
}

return it;
}

//This function is to get each different word
int getUniqueWords(list<Info> &myList) 
{
   return myList.size();
}

//This function is to get all the words inside the list
int getAllWords(list<Info> &myList) 
{
   int nWords = 0;
   list<Info> :: iterator it;
   for (it = myList.begin(); it != myList.end(); it++) 
   {
      nWords += it->count;
   }
   return nWords;
}

//This function is to add word to the list and break it into lines
void addToList(list<Info> &myList, string word) 
{
   char *cstr, *pch;
   list<Info> :: iterator it;
   Info temp;

   cstr = new char [word.size() + 1];
   strcpy (cstr, word.c_str());
   pch = strtok (cstr, " %\t,;:”~!#^*()=+[]{}|<>?/\"");

   while (pch != NULL) 
   {
      it = findSimilar(myList, pch);
      if (it != myList.end())
      {
         it->count++;
      } 
      else 
      {
         temp.word = pch;
         temp.count = 1;
         myList.push_back(temp);
      }
   pch = strtok(NULL, " ");
   }
}

//This function is to compare 2 lists
bool compare(Info a, Info b) 
{
   return a.word.compare(b.word) < 0;
}

//This function is to sort the list using the bool compare
void sortList(list<Info> &myList)
{
   myList.sort(compare);
}

//This function is to print list every count, word, and total of unique words and total words in the list
void printList(list<Info> &myList, const string &filename) 
{
   list<Info> :: iterator it;
   cout << "\n" << "COUNT " << "|" << " WORD" << "\n";
   cout << "------" << "+" << "-----" << "\n";
   for (it = myList.begin(); it != myList.end(); it++) 
   {
		cout << "   " << it->count << "  |  " << it->word << endl;
   }
   cout << "\n" << "Number of unique words in " << filename << " is "<< getUniqueWords(myList) << endl;
	cout << "Total number of words in " << filename << " is "<< getAllWords(myList) << endl;
}

int main(int argc, char *argv[]) 
{
   list <Info> myList;
   string str;

   ifstream file (argv[1]);
   string filename = argv[1];

   if (argc != 2) 
   {
      cout << "usage: " << argv[0] << " <filename>" << endl;
   } 
   else 
   {
      while(!file.eof()) 
      {
         getline(file, str);
         addToList(myList, str);
      }
      sortList(myList);
      printList(myList, filename);
   }
return 0;
}


When I compile, I got this error:

Undefined first referenced
symbol in file
main /opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/crt1.o
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status

Can anyone help me on that? THanks
It compiles and runs fine using gcc under MinGW
The error message is a little cryptic, but it looks like the linker was unable to find main. Make sure all your source files are being compiled and the resulting object code linked.
The above also compiles for me on VC++ 2008. A quick google search suggests the error can be attributed to any missing implementation for a declared method or function. I'm assuming you have multiple files for your project that you simplified for your question? If you can't figure out the issue, post all the code file-by-file, and perhaps we can help more.
Topic archived. No new replies allowed.