Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C++ > Error when compiling with Cygwin

Reply
Thread Tools

Error when compiling with Cygwin

 
 
Will Twentyman
Guest
Posts: n/a
 
      08-26-2004
Andre Heinen wrote:

> On 25 Aug 2004 05:13:38 -0700, http://www.velocityreviews.com/forums/(E-Mail Removed) (TuPLaD) wrote:
>
>>#include "iostream"

>
>
> I was about to post to tell the OP to use #include <iostream>
> instead of #include "iostream", but after I saw that neither Rolf
> nor Sharad reacted, I hesitated. I tried it, and indeed my
> compiler didn't complain. Yet I was under the impression that
> standard headers should be included with square brackets.
>
> Stroustrup 9.2.1 says that for standard headers square brackets
> should be used rather than quotes, but I couldn't figure out if
> it is mandatory or just some guideline.
>
> If I remember correctly, #include "somefile.h" means:
> 1) first search for somefile.h in the current directory, and if
> that fails
> 2) search the system directories.
> This would explain why my compiler accepted it.
>
> However, #include <iostream> does not mean that there must be a
> file called iostream: the name may be different, or there may be
> no file at all, depending on the compiler.
>
> Hence I believe that #include "iostream" may work on one
> compiler, but is not portable, and should be avoided.
>
> Did I miss something?


I think that if he used #include "iostream.h" it would work.

Based on the error messages, it looks like iostream didn't get loaded,
but the complaint from the compiler comes when he tries to use something
from iostream that hasn't loaded, specifically std::cout. I've gotten
similar types of errors in the past from this type of mistake,
especially when I mis-spell a filename.

--
Will Twentyman
email: wtwentyman at copper dot net

 
Reply With Quote
 
 
 
 
Pete Chapman
Guest
Posts: n/a
 
      08-26-2004
TuPLaD wrote:
> 2) THERE DOESNT EXIST ANY ANY ANY ANY image virusses that can work
> from a site, you will have to download & start it(yes it can go to
> cache :]). So its not a virus.


Just FYI, it's quite possible have arbitrary code executed just by
loading an image. Take a look at:
http://www.securitytracker.com/alert...b/1009067.html
That's just one (out-of-date) example. Granted, it's an exploit not a
virus. But there's no reason that you couldn't put a virus inside a BMP.
 
Reply With Quote
 
 
 
 
Howard
Guest
Posts: n/a
 
      08-26-2004

"TuPLaD" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) om...
> First of all ->
> I didnt knew how to copy paste from Cygwin's window so i made a
> screenshot
> 2) THERE DOESNT EXIST ANY ANY ANY ANY image virusses that can work
> from a site, you will have to download & start it(yes it can go to
> cache :]). So its not a virus.
>


You obviously don't live in the MS Windows world! Windows has been
well-known for allowing viruses in simply by clicking on a link. And the
link shown in the text doesn't always match the actual underlying link
(because HTML can hide it easily), so just because you have a .png extension
(whatever that is), doesn't mean it's not something that can execute when I
link to it. Check any of the dozen or more security notices about Windows
in the past year. I got a virus on my PC just a month or two ago, simply by
linking to a web site that had been compromised, and that was a site I
normally trust and have linked to many times! Basically, my philosophy
(like many Windows users') is to not click on links unless I know what I'm
linking to.

> Third -> I just compiled it in Linux, and it worked well
> I started it, it gave me the text & stuff :]
>
> Thx for your help all !


(BTW, was it the include statement that was the problem?)


 
Reply With Quote
 
Rolf Magnus
Guest
Posts: n/a
 
      08-26-2004
TuPLaD wrote:

> First of all ->
> I didnt knew how to copy paste from Cygwin's window so i made a
> screenshot


Fair enough, though unusual

> 2) THERE DOESNT EXIST ANY ANY ANY ANY image virusses that can work
> from a site, you will have to download & start it(yes it can go to
> cache :]). So its not a virus.


The fact that its name ends in .png alone doesn't mean it's just an
image. That depends on the mimetype that the http server sends. It
could easily be a html page with javascript and activex and (insert web
buzzword here).

> Third -> I just compiled it in Linux, and it worked well


But surely not with the command line you wrote in your original message.
If you use gcc for it, the C++ standard library will not be linked in,
which should result (and does here on my linux box) in similar messages
to those from your screenshot.
Try (as I already wrote) g++ instead of gcc. Do you get the same errors
when using g++ under Cygwin?

 
Reply With Quote
 
jive
Guest
Posts: n/a
 
      08-26-2004
> "Rolf Magnus" <(E-Mail Removed)> wrote in message news:cgk967$soo$00
> $(E-Mail Removed)-online.com...
> jive wrote:
>
> > The last C++ standard version is from 2003, but except for a few
> > minor corrections, it's the same as C++98.

>
> AFAIK there is only a draft, as the standardisation process is still
> incomplete and new revision of the C++ standard is supposedly due this
> fall.
>
> See:
> http://www.iso.org/iso/en/CatalogueD...talogueDetail?
> CSNUMBER=38110


Strange.. I found no mention about this on
http://www.open-std.org/jtc1/sc22/wg21/ and this
http://www.open-std.org/jtc1/sc22/wg...2004/n1638.pdf outdates
the one available on the ISO site.

Could someone comment on that?

- jive


---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use (E-Mail Removed) ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html ]

 
Reply With Quote
 
Andre Heinen
Guest
Posts: n/a
 
      08-27-2004
On Thu, 26 Aug 2004 10:25:37 -0400, Will Twentyman
<(E-Mail Removed)> wrote:
>Andre Heinen wrote:
>> On 25 Aug 2004 05:13:38 -0700, (E-Mail Removed) (TuPLaD) wrote:
>>>
>>>#include "iostream"

>> <snip>

>
>I think that if he used #include "iostream.h" it would work.
> <snip>


His mistake was to use gcc instead of g++. I have the same
system: when linked correctly, the program works fine with
"iostream". With "iostream.h", it works fine too, but the
compiler gives a warning.

What puzzles me is that I thought it was illegal to use double
quotes to include standard headers. I'd like someone who knows
better than me to confirm.

--
Andre Heinen
My address is "a dot heinen at europeanlink dot com"
 
Reply With Quote
 
Steve Clamage
Guest
Posts: n/a
 
      08-28-2004
jive wrote:
>>"Rolf Magnus" <(E-Mail Removed)> wrote in message news:cgk967$soo$00
>>$(E-Mail Removed)-online.com...
>>jive wrote:
>>
>>
>>>The last C++ standard version is from 2003, but except for a few
>>>minor corrections, it's the same as C++98.

>>
>>AFAIK there is only a draft, as the standardisation process is still
>>incomplete and new revision of the C++ standard is supposedly due this
>>fall.
>>
>>See:
>>http://www.iso.org/iso/en/CatalogueD...talogueDetail?
>>CSNUMBER=38110

>
>
> Strange.. I found no mention about this on
> http://www.open-std.org/jtc1/sc22/wg21/ and this
> http://www.open-std.org/jtc1/sc22/wg...2004/n1638.pdf outdates
> the one available on the ISO site.
>
> Could someone comment on that?
>
> - jive


The C++ Committee worked on addressing errors in the original 1998 C++
standard (see this newsgroup's FAQ list about Defect Reports), and is
now working on a future C++ standard.

A Technical Report (TR1) was released containing fixes to Defect
Reports. The TR was folded into a new version of the C++ standard,
dated 2003. That is now the official standard (ISO/IEC 14882:2003). It
is available for purchase from ISO (at the above addres), from
www.ansi.org, and from www.incits.org.

In the process of creating a standard (or TR), the committee creates
many drafts, carefully labeled as drafts. The n1638.pdf paper is one
example.

These drafts have no official weight. They are known to contain errors
and inconsistencies, and to be incomplete. In fact these drafts say so
on the first page!

---
Steve Clamage, (E-Mail Removed)

---
[ comp.std.c++ is moderated. To submit articles, try just posting with ]
[ your news-reader. If that fails, use (E-Mail Removed) ]
[ --- Please see the FAQ before posting. --- ]
[ FAQ: http://www.jamesd.demon.co.uk/csc/faq.html ]

 
Reply With Quote
 
Karthiik Kumar
Guest
Posts: n/a
 
      08-28-2004
TuPLaD wrote:

> Hello,
> I just made a little C++ console application:
>
> #include "iostream"


What is this. this one ought to be

#include <iostream>

> using namespace std;


Well, this serves good for academic purposes. But for all practical
purposes, you would not want to bring everything in std namespace to
your application.

>
> int main ()
> {
> cout << "Hello Mars !";


u can write this one as std::cout << ....


> return 0;



While your intentions are certainly good when you write this, the
better way to do this is

return EXIT_SUCCESS;

/ EXIT_FAILURE depending upon what you want to do.

> }
>
> But when i tryed to compile it with Cygwin.
>
> gcc main.cpp -o main.exe


Why on earth are you using gcc (That is supposed to be a C compiler).
Use g++ .

>
> It gave me the following error:
>
> http://users.pandora.be/rz6hkk/cygwin.png


I couldnt access that.

>
> I heard there is some new *modern* c++ language ?!


Might be you are talking about a library written in C++.
--
Karthik
 
Reply With Quote
 
Rolf Magnus
Guest
Posts: n/a
 
      08-28-2004
Karthiik Kumar wrote:

> TuPLaD wrote:
>
>> Hello,
>> I just made a little C++ console application:
>>
>> #include "iostream"

>
> What is this. this one ought to be
>
> #include <iostream>
>
>> using namespace std;

>
> Well, this serves good for academic purposes. But for all practical
> purposes, you would not want to bring everything in std namespace to
> your application.
>
>>
>> int main ()
>> {
>> cout << "Hello Mars !";

>
> u can write this one as std::cout << ....
>
>
>> return 0;

>
>
> While your intentions are certainly good when you write this, the
> better way to do this is
>
> return EXIT_SUCCESS;
>
> / EXIT_FAILURE depending upon what you want to do.
>
>> }
>>
>> But when i tryed to compile it with Cygwin.
>>
>> gcc main.cpp -o main.exe

>
> Why on earth are you using gcc (That is supposed to be a C
> compiler).
> Use g++ .


Just FYI, gcc is not supposed to be a C compiler. It's rather the
multi-language frontend that tries to guess the language from the file
name of the source file (if you don't explicitly specify it).
The problem is the linking step, since the linker doesn't know the
language that an object file was generated from. Therefore, linking
with gcc assumes C and therefore omits the command line arguments that
would be needed for C++.
However, it's best to not bother and just always use g++ whenever you
have C++ code.

 
Reply With Quote
 
TuPLaD
Guest
Posts: n/a
 
      08-28-2004
Karthiik Kumar <(E-Mail Removed)> wrote in message news:<413018ab$1@darkstar>...
> TuPLaD wrote:
>
> > Hello,
> > I just made a little C++ console application:
> >
> > #include "iostream"

>
> What is this. this one ought to be
>
> #include <iostream>
>
> > using namespace std;

>
> Well, this serves good for academic purposes. But for all practical
> purposes, you would not want to bring everything in std namespace to
> your application.
>
> >
> > int main ()
> > {
> > cout << "Hello Mars !";

>
> u can write this one as std::cout << ....
>
>
> > return 0;

>
>
> While your intentions are certainly good when you write this, the
> better way to do this is
>
> return EXIT_SUCCESS;
>
> / EXIT_FAILURE depending upon what you want to do.
>
> > }
> >
> > But when i tryed to compile it with Cygwin.
> >
> > gcc main.cpp -o main.exe

>
> Why on earth are you using gcc (That is supposed to be a C compiler).
> Use g++ .
>
> >
> > It gave me the following error:
> >
> > http://users.pandora.be/rz6hkk/cygwin.png

>
> I couldnt access that.
>
> >
> > I heard there is some new *modern* c++ language ?!

>
> Might be you are talking about a library written in C++.


I replaced the image to: http://users.pandora.be/rz6hkk/img/cygwin.png

I compiled it with g++ so it worked.

About the image virusses, well, i didnt had that much virusses, 1 or
2, and some friend of mine changed the source of mydoom a little bit
and gave it to me to "test".
and he didnt had a removal , so had to remove it myself

you say its a virus, but why the HELL do you think about it ? look at
the first answer, he clicked on the image, nothing happened ....
whats the problem lol ?


anyway
its solved
g++ main.cpp -o main.exe worked well in linux , also executed it in
console
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
linking error when compiling CVOde in cygwin capes C++ 0 10-04-2006 07:12 PM
confirm unsubscribe from cygwin@cygwin.com cygwin-help@cygwin.com Python 0 09-05-2003 04:42 PM
WELCOME to cygwin@cygwin.com cygwin-help@cygwin.com Python 1 09-05-2003 07:46 AM
confirm unsubscribe from cygwin-announce@cygwin.com cygwin-announce-help@cygwin.com Python 0 09-05-2003 01:29 AM
confirm unsubscribe from cygwin@cygwin.com cygwin-help@cygwin.com Python 0 09-04-2003 06:34 PM



Advertisments