Problems with ld: Unresolved error C++ compiling error
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Unix and Linux reviews > Free Unix support > Unix Programming > Problems with ld: Unresolved error C++ compiling error




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    Problems with ld: Unresolved error C++ compiling error  
stevenruiz@gmail.com


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
02-14-07 12:18 AM

Hi Everyone,

>     The problem that I have involves program that searches for a certain string wi
thin a file.  As seen in the code, I have declared a Strings class which overrides t
he string class in C++.  Inside of this class, it has a function called findStr (rep
lac
es the find in string.h) which will return a 0 when it is able to find an oc
currence within the file.  If not, it will return a -1.

The Strings.h has the function Get_Line which is defined and the error
is shown below:

Strings.h:

void get_line( istream & );


>    ld: Unresolved:
>         String::get_line(std::basic_istream <char,
> std::char_traits<char>&> )


> The code segment follows this structure and does compile:


#include "Strings.h"
#include <fstream.h>

int main( int argc, char** argv)
{
fstream File;
Strings End_Of_Line;
File.open("/users/netgrps/sf305/test.txt", ios::in);
Strings output = "", Stored_Message="", Line(End_Of_Line);
int num_of_hits=0;


while( ! File.eof())

{
if(Line.findStr("Stat:") != 0)
{
num_of_hits++;

if(num_of_hits == 2)
break;
}

if(num_of_hits == 1)
Stored_Message += Line;

Line.get_line(File);
End_Of_Line = Line;

}
cout << Stored_Message << endl;
}

I opened the library that Strings.h is compiled into with the command
"nm -print" and the method exists. Any idea what may be the problem?






[ Post a follow-up to this message ]



    Re: Problems with ld: Unresolved error C++ compiling error  
red floyd


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
02-14-07 12:18 AM

stevenruiz@gmail.com wrote:
> Hi Everyone,
> 
ces the find in string.h) which will return a 0 when it is able to find an occurrence within
 the file.  If not, it will return a -1.[vbcol=seagreen]
>
> The Strings.h has the function Get_Line which is defined and the error
> is shown below:
>
> Strings.h:
>
> void get_line( istream & );
>
> 
>
> 
>
>
> #include "Strings.h"
> #include <fstream.h>

Fstream.h is non-standard.  Should be

#include <fstream>
using std::fstream;
>
> int main( int argc, char** argv)
> {
>       fstream File;
>       Strings End_Of_Line;
>       File.open("/users/netgrps/sf305/test.txt", ios::in);
>       Strings output = "", Stored_Message="", Line(End_Of_Line);
>       int num_of_hits=0;
>
>
>       while( ! File.eof())
>
>       {
>           if(Line.findStr("Stat:") != 0)
>           {
>              num_of_hits++;
>
>              if(num_of_hits == 2)
>                 break;
>           }
>
>           if(num_of_hits == 1)
>              Stored_Message += Line;
>
>           Line.get_line(File);
>           End_Of_Line = Line;
>
>       }
>       cout << Stored_Message << endl;
> }
>
> I opened the library that Strings.h is compiled into with the command
> "nm -print" and the method exists. Any idea what may be the problem?
>





[ Post a follow-up to this message ]



    Re: Problems with ld: Unresolved error C++ compiling error  
John Harrison


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
02-14-07 12:18 AM

stevenruiz@gmail.com wrote:
> Hi Everyone,
>
> 
es the find in string.h) which will return a 0 when it is able to find an occurrence within 
the file.  If not, it will return a -1.[vbcol=seagreen]
>
>
> The Strings.h has the function Get_Line which is defined and the error
> is shown below:
>
> Strings.h:
>
> void get_line( istream & );
>
>
> 
>
>
> 
>
>
>
> #include "Strings.h"
> #include <fstream.h>
>
> int main( int argc, char** argv)
> {
>       fstream File;
>       Strings End_Of_Line;
>       File.open("/users/netgrps/sf305/test.txt", ios::in);
>       Strings output = "", Stored_Message="", Line(End_Of_Line);
>       int num_of_hits=0;
>
>
>       while( ! File.eof())
>
>       {
>           if(Line.findStr("Stat:") != 0)
>           {
>              num_of_hits++;
>
>              if(num_of_hits == 2)
>                 break;
>           }
>
>           if(num_of_hits == 1)
>              Stored_Message += Line;
>
>           Line.get_line(File);
>           End_Of_Line = Line;
>
>       }
>       cout << Stored_Message << endl;
> }
>
> I opened the library that Strings.h is compiled into with the command
> "nm -print" and the method exists. Any idea what may be the problem?
>

Are you sure you are linking your program with the library containing
get_line? Have you got consistant compiler flags etc. for the library
compile and the program compile? Are you using shared libraries or
static libaries, etc. etc.

Clearly you are using your tools incorrectly but this isn't really a C++
issue, it's a tools issue. Suggest you ask on a different group, and
supply a bit more information. I'd guess it's the *way* you are
compiling and linking, not the code that you are compiling and linking.

john





[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 09:10 PM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register