473,805 Members | 2,297 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Linking problem - please help

I'm in the early stages of developing a class that will represent a metric
distance by storing both a number and unit (ie KM, M, CM etc).

I've developed some initial code as a starting point; however, it won't link
during a compile using VC++.

The error message I get is "
LIBCD.lib(crt0. obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup

Debug/Message.exe : fatal error LNK1120: 1 unresolved externals"
I've included the header and source below. Any help would be appreciated.

Thanks
//Distance.h as follows:
*************** *************** **************
#ifndef DISTANCE_H

#define DISTANCE_H

#include <iostream>

using namespace std;

class Distance

{

public :

Distance ( int, char ) ; // constructor (takes int value and string unit of
measure

~Distance ( void ) ; // destructor (its name is ~ then class name)

//access member functions

int number (void) const;

char measure (void) const;

private :

int nu ; // the value

char me ; // the unit of measure

} ;

// provide an overload of "<<" for easy display

ostream& operator<< (ostream&, const Distance&);

#endif

//Distance.cpp as follows:

*************** *************** *************** *********
#include "Distance.h "

#include <iostream>

using namespace std;

/*-------------------------------------------------------*\

| implementation of member functions |

\*-------------------------------------------------------*/

// constructor

Distance :: Distance ( int n, char m ) : nu(n), me(m) {}

// access functions

int Distance :: number (void) const

{

return nu;

}

char Distance :: measure (void) const

{

return me;

}

// provide an overload of "<<" for easy display

ostream& operator<< (ostream& out, const Distance& d)

{

out << d.number() << "-" << d.measure();

return out;

}

/*-------------------------------------------------------*\

| test driver for the Distance class |

\*-------------------------------------------------------*/

#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )

{

// create test input

Distance a = Distance (5, KM);

cout << a << endl;

cin ignore();

return 0; // normal termination

}

#endif


Jul 22 '05 #1
12 1611
Chiller wrote:

I'm in the early stages of developing a class that will represent a metric
distance by storing both a number and unit (ie KM, M, CM etc).

I've developed some initial code as a starting point; however, it won't link
during a compile using VC++.

The error message I get is "
LIBCD.lib(crt0. obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup

as the linker says: it cannot find a main function in what you try to link.

#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )
[...]
#endif


I cannot see a definition for TEST_DISTANCE in what you have posted. Is this
definement set through some compiler options?

--
Karl Heinz Buchegger
kb******@gascad .at
Jul 22 '05 #2
Chiller wrote:

I'm in the early stages of developing a class that will represent a metric
distance by storing both a number and unit (ie KM, M, CM etc).

I've developed some initial code as a starting point; however, it won't link
during a compile using VC++.

The error message I get is "
LIBCD.lib(crt0. obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup

as the linker says: it cannot find a main function in what you try to link.

#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )
[...]
#endif


I cannot see a definition for TEST_DISTANCE in what you have posted. Is this
definement set through some compiler options?

--
Karl Heinz Buchegger
kb******@gascad .at
Jul 22 '05 #3
>
#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )

{

// create test input

Distance a = Distance (5, KM);

cout << a << endl;

cin ignore();

return 0; // normal termination

}

#endif


The obvious problem seems to be that you haven't defined TEST_DISTANCE. Are
you sure you developed this code? And what do you think TEST_DISTANCE is for
anyway? I would just remove it.

john
Jul 22 '05 #4
>
#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )

{

// create test input

Distance a = Distance (5, KM);

cout << a << endl;

cin ignore();

return 0; // normal termination

}

#endif


The obvious problem seems to be that you haven't defined TEST_DISTANCE. Are
you sure you developed this code? And what do you think TEST_DISTANCE is for
anyway? I would just remove it.

john
Jul 22 '05 #5
I was under the impression that a test driver could be included with a class
which would enable conditional compilation by wrapping the test in "#ifdef
TEST_?????" and #endif. The ????? being the name of the class in uppercase.
"Karl Heinz Buchegger" <kb******@gasca d.at> wrote in message
news:40******** *******@gascad. at...
Chiller wrote:

I'm in the early stages of developing a class that will represent a metric distance by storing both a number and unit (ie KM, M, CM etc).

I've developed some initial code as a starting point; however, it won't link during a compile using VC++.

The error message I get is "
LIBCD.lib(crt0. obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup

as the linker says: it cannot find a main function in what you try to

link.

#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )
[...]

#endif


I cannot see a definition for TEST_DISTANCE in what you have posted. Is

this definement set through some compiler options?

--
Karl Heinz Buchegger
kb******@gascad .at

Jul 22 '05 #6
I was under the impression that a test driver could be included with a class
which would enable conditional compilation by wrapping the test in "#ifdef
TEST_?????" and #endif. The ????? being the name of the class in uppercase.
"Karl Heinz Buchegger" <kb******@gasca d.at> wrote in message
news:40******** *******@gascad. at...
Chiller wrote:

I'm in the early stages of developing a class that will represent a metric distance by storing both a number and unit (ie KM, M, CM etc).

I've developed some initial code as a starting point; however, it won't link during a compile using VC++.

The error message I get is "
LIBCD.lib(crt0. obj) : error LNK2019: unresolved external symbol _main
referenced in function _mainCRTStartup

as the linker says: it cannot find a main function in what you try to

link.

#ifdef TEST_DISTANCE // .... Distance class .... test driver

int main ( void )
[...]

#endif


I cannot see a definition for TEST_DISTANCE in what you have posted. Is

this definement set through some compiler options?

--
Karl Heinz Buchegger
kb******@gascad .at

Jul 22 '05 #7

"Chiller" <...@...> wrote in message
news:2a******** *************** *******@news.te ranews.com...
I was under the impression that a test driver could be included with a class which would enable conditional compilation by wrapping the test in "#ifdef
TEST_?????" and #endif. The ????? being the name of the class in uppercase.


Well, that's not right.

Seems you are under the impression that the C++ pre-processor is more
sophisticated than it really is. The rules are very simple, if you write

#ifdef SOMETHING

some code in here

#endif

then the code between the #ifdef and #endif will not be compiled unless
SOMETHING is defined.

That's all there is to it, test drivers and classes have no relevance.

john
Jul 22 '05 #8

"Chiller" <...@...> wrote in message
news:2a******** *************** *******@news.te ranews.com...
I was under the impression that a test driver could be included with a class which would enable conditional compilation by wrapping the test in "#ifdef
TEST_?????" and #endif. The ????? being the name of the class in uppercase.


Well, that's not right.

Seems you are under the impression that the C++ pre-processor is more
sophisticated than it really is. The rules are very simple, if you write

#ifdef SOMETHING

some code in here

#endif

then the code between the #ifdef and #endif will not be compiled unless
SOMETHING is defined.

That's all there is to it, test drivers and classes have no relevance.

john
Jul 22 '05 #9
For anyone reading this thread.

As it turns out, I'm also required to declare the test driver in the
preprocessor definitions. This must avoid the requirement to declare or
undeclare the definition each time I wish to use the test driver.

To do this under VC++ it's simply a matter of going into the properties of
the project selecting the Preprocessor and adding the name of the test
driver, "TEST_DISTA NCE" in this case.
Thanks for your help Karl.

"John Harrison" <jo************ *@hotmail.com> wrote in message
news:c5******** *****@ID-196037.news.uni-berlin.de...

"Chiller" <...@...> wrote in message
news:2a******** *************** *******@news.te ranews.com...
I was under the impression that a test driver could be included with a

class
which would enable conditional compilation by wrapping the test in "#ifdef TEST_?????" and #endif. The ????? being the name of the class in

uppercase.


Well, that's not right.

Seems you are under the impression that the C++ pre-processor is more
sophisticated than it really is. The rules are very simple, if you write

#ifdef SOMETHING

some code in here

#endif

then the code between the #ifdef and #endif will not be compiled unless
SOMETHING is defined.

That's all there is to it, test drivers and classes have no relevance.

john

Jul 22 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

5
1630
by: Rudy | last post by:
I am desperately seeking some help with a program that was supposed to have been completed last night. I have only been working with PHP for a week. I have tried and tried and tried, but I am unable to get this program to work. I posted a question earlier this week "Linking Query Results to a webpage", however I could never figure out where to add the code and my client added another complexity (open into a new window). I have a very...
0
2251
by: gasturbtec | last post by:
please help im new at access programming and i just got this project dropped in my lap because the old programmer quit. i've been doing ok so far but now i need to add code to an existing database that is used to connect to other databases and generate reports. below is sample code of how the database does the linking i hope i give you enough info to help me but if not let me know and i will give more. Sub txtShipDataFileSub() Dim...
1
1220
by: bab | last post by:
i need help linking my relational data base. some one help me please. i can link a one to one relationship but i cant link a one to many for some unknown reason. can some one please tell me how to do it its in Access 2000 by the way
4
3018
by: Gary Hughes | last post by:
Hi all, sometime I posted a problem in here where I was getting the following error from the linker in VS C++ 2003. Linking... GCClass.obj : error LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: GCClass; fields: m_blah): (0x04000001). LINK : fatal error LNK1215: metadata operation failed (80131130) :
2
7258
by: | last post by:
Help! I'm new to c++, and am breaking my teeth on MS Visual C++ (bundled within Visual Studio .NET 2003). Am trying to link simple c++ code to fortran dlls created in Compaq Visual Fortran (v6.1). Posts concerning this topic are common, but none of the posted solutions I've tried work correctly with the above software. The linker can't seem to find the dll (reports 'unresolved external symbol __imp__IMSL_FUN@8'; IMSL_FUN.dll is the f77...
7
2397
by: Hal Vaughan | last post by:
I have a problem with port forwarding and I have been working on it for over 2 weeks with no luck. I have found C programs that almost work and Java programs that almost work, but nothing that does what I need. I've even tried writing a port forwarder in Java and found problems that nobody seems to have the answer to in forums. I need to make it work essentially the same on both Windows and Linux. There is one program, in C, that...
1
2250
by: buchalino | last post by:
Hi Guys, Please can someone help me, I am having a linking problem . I am writing a socket program, the problem is just the linking . I am using VC++ In the process of the problem, I installed the MSDN service pack, but not sure if it has a specific directory to be installed in.
1
5963
by: srikar | last post by:
what is the difference between static linking & dynamic linking, what are the advantages of each? How to perform static linking & Dynamic linking by using gcc -o liniking will be done , but how can we control the type of linking Hi any one please help me to clarify my doubt
0
3986
by: xieml2007 | last post by:
Dear Madam or Sir, I encountered one problem which is quite similiar to the discussions launched at the web site: http://www.thescripts.com/forum/thread280324.html
0
1449
NeoPa
by: NeoPa | last post by:
If anyone can help with a problem linking across to a table in a database on a SQL 2000 server, then please visit Linking from Access over in SQL Server. I'm locking this so that any and all responses are kept in the one thread.
0
10617
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10364
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10370
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10109
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
9186
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7649
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6876
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5678
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
3
3008
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.