473,654 Members | 3,253 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 1600
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
1619
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
2240
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
1213
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
3011
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
7245
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
2380
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
2238
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
5954
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
3976
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
1434
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
8379
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8294
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8816
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
8596
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...
1
6162
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
4150
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4297
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1924
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
2
1597
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.