Date: Fri, 16 Dec 2005 13:04:47 -0500 From: Nathan Vidican <nvidican@wmptl.com> To: Giorgos Keramidas <keramida@ceid.upatras.gr> Cc: davmiao@gmail.com, questions@freebsd.org Subject: Re: C++ compile error Message-ID: <43A301BF.5040509@wmptl.com> In-Reply-To: <20051216170046.GB2712@flame.pc> References: <43A2DE53.7080207@wmptl.com> <979f20140512160813i5394e789u1d7624a625e893f@mail.gmail.com> <979f20140512160709n3530c01dmdad5714f8e30bc00@mail.gmail.com> <43A2DE53.7080207@wmptl.com> <9061.38.112.155.126.1134747675.squirrel@www.keyslapper.net> <979f20140512160709n3530c01dmdad5714f8e30bc00@mail.gmail.com> <43A2DE53.7080207@wmptl.com> <979f20140512160709n3530c01dmdad5714f8e30bc00@mail.gmail.com> <43A2DDCF.1030708@wmptl.com> <979f20140512160709n3530c01dmdad5714f8e30bc00@mail.gmail.com> <20051216170046.GB2712@flame.pc>
next in thread | previous in thread | raw e-mail | index | archive | help
Giorgos Keramidas wrote:
> On 2005-12-16 23:09, David Miao <davmiao@gmail.com> wrote:
>
>>Dear list,
>>
>>I try to compile a hello world C++ program in FreeBSD 6.0, but get an
>>error as below:
>>
>>[dm@ORION ~/cpp]% CC -o hello hello.C
>>hello.C: In function `int main()':
>>hello.C:5: error: `cout' undeclared (first use this function)
>>hello.C:5: error: (Each undeclared identifier is reported only once
>>for each function it appears in.)
>>hello.C:5: error: `endl' undeclared (first use this function)
>
>
>>==quote of hello world code==
>>#include <iostream>
>>
>>int main()
>>{
>> cout << "Hello World!" << endl;
>>
>> return 0;
>>}
>>== end of quote==
>
>
> You have to add a line like this:
>
> using namespace std;
>
> at the toplevel of your sources. The example then works:
>
> keramida@flame[18:51]/tmp$ CC hello.C
> keramida@flame[18:52]/tmp$ ./a.out
> Hello World!
> keramida@flame[18:52]/tmp$ diff -u hello.C.orig hello.C
> --- hello.C.orig Fri Dec 16 18:51:26 2005
> +++ hello.C Fri Dec 16 18:51:58 2005
> @@ -1,5 +1,7 @@
> #include <iostream>
>
> +using namespace std;
> +
> int main()
> {
> cout << "Hello World!" << endl;
> keramida@flame[18:52]/tmp$
>
> On 2005-12-16 10:31, Nathan Vidican <nvidican@wmptl.com> wrote:
>
>>gcc assumes a '.C' file is ANSI C, not C++, try:
>>mv hello.C hello.cpp && gcc -o hello.exe hello.cpp
>
>
> Not really. But it's a very good idea to use something that doesn't
> only differ in the case of the name from plain ANCI C, because
> transferring the files from Unix to other operating systems
> (i.e. Windows) may lose the case of the names some times :-)
>
> On 2005-12-16 10:41, "Louis J. LeBlanc" <FreeBSD@keyslapper.net> wrote:
>
>>I'm not nearly as adept with C++ as I am with C, Perl, and a few other
>>geek tools, but doesn't C++ default to the std namespace if none is
>>specified?
>
>
> It doesn't :-(
>
> On 2005-12-17 00:13, David Miao <davmiao@gmail.com> wrote:
>
>>Nathan,
>>
>>I'm learning c++ programming language by using "The complete c++
>>training course - second edition" (Harvey Deitel & Paul Deitel), hello
>>world is the first program in this book. I'm totally puzzled by this
>>complex language when I compile my first program. Is this book out of
>>date?
>
>
> That's a pretty old book. Judging from the sheer number of books these
> authors have listed in Amazon, I think it's pretty safe to consider it
> very out of date :(
>
>
>>This post may off topic of FreeBSD, sorry to other people...
>
>
> That's ok. The list is, after all, "for general FreeBSD questions" :)
>
>
>
If you want a GOOD book to start self-teaching C++, grab yourself 'C++ in 21
Days' it's a classic, but GREAT starter book.
--
Nathan Vidican
nvidican@wmptl.com
Windsor Match Plate & Tool Ltd.
http://www.wmptl.com/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43A301BF.5040509>
