g++ question

Paul Tsai pat2 at Lehigh.EDU
Mon Apr 21 07:20:28 PDT 2003


Hey,
Erik is totally correct.  Jason if you type g++ --version at the shell 
you will find that your g++ is above 3.2.  GNU decided to become totally 
ansi compliant with thier 3.2 version which is why you would have to do 
what Erik just said.  One thing to mention, if it bothers you that much 
as a new programmer (which it means this is probably going way over your 
head) you can install an older version of gcc

Erik Trulsson wrote:

>On Mon, Apr 21, 2003 at 05:39:11AM -0400, Jason Griffis wrote:
>  
>
>>	I'm going through a C++ tutorial trying to increase my knowledge ;)
>>Any way.. I wrote this little code:
>>
>>// My first program in C++
>>#include <iostream>
>>
>>int main()
>>{
>>	cout << "Hello World!";
>>	return 0;
>>}
>>
>>	When I compile it this way with g++ I get errors due to the compiler not 
>>finding the iostream file:
>>
>>$ g++ -o hello hello.cc
>>hello.cc: In function `int main()':
>>hello.cc:6: `cout' undeclared (first use this function)
>>hello.cc:6: (Each undeclared identifier is reported only once for each 
>>function
>>   it appears in.)
>>$
>>
>>	I do have iostream in /usr/include so I don't see why it's doing this, 
>>whenever I change it to #include <iostream.h> it compiles fine but gives a 
>>warning of using a deprecated header file:
>>
>>$ g++ -o hello hello.cc
>>In file included from /usr/include/g++/backward/iostream.h:31,
>>                 from hello.cc:2:
>>/usr/include/g++/backward/backward_warning.h:32:2: warning: #warning This file 
>>includes at least one deprecated or antiquated header. Please consider using 
>>one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples 
>>include substituting the <X> header for the <X.h> header for C++ includes, or 
>><sstream> instead of the deprecated header <strstream.h>. To disable this 
>>warning use -Wno-deprecated.
>>$
>>
>>	Obviously it isn't that big of a deal with such a small program but when I 
>>move on to bigger projects that I'll want to use on different platforms other 
>>than FreeBSD these errors and warnings will be a major pain. Can anyone tell 
>>me what might be wrong with my system in order for g++ not to see the normal 
>>iostream header in /usr/include ?
>>    
>>
>
>[This is not really a FreeBSD question, but rather a C++ question.]
>
>Nothing wrong with your system, but a problem with your program.
>The tutorial you are using seems to be a bit old.
>Although your program would have been just fine with older C++
>implementations (except that they did not have headernames of the <foo>
>style, only <foo.h>) , the newer, standard-compliant, implementations
>have moved most of the standard library into the 'std' namespace.
>The older <foo.h> name for the headers puts the functions into the
>global namespace, but that is not recommended for new code.
>
>Try using std::cout instead of just cout.  (Or put a 'using namespace
>std;' after the include.)
>
>
>  
>



More information about the freebsd-questions mailing list