Compilation error on namespaces in system header debug.h


 
Thread Tools Search this Thread
Top Forums Programming Compilation error on namespaces in system header debug.h
# 1  
Old 11-01-2007
Compilation error on namespaces in system header debug.h

Hi,

I'm porting code from Windows to HP-UX 11, compiling with g++.
I'm getting a compilation error on the system's debug.h include file, which is included very indirectly through a series of other system include files. The one I am including is <map> .
The errors I am getting are:
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h: At global scope:
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:49: error: expected identifier before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:49: error: expected unqualified-id before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:54: error: expected identifier before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:54: error: expected unqualified-id before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:59: error: expected identifier before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:59: error: expected `;' before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:59: error: expected unqualified-id before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:60: error: expected identifier before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:60: error: expected `;' before numeric constant
/opt/hp-gcc-4.2.1/lib/gcc/ia64-hp-hpux11.23/4.2.1/../../../../include/c++/4.2.1/debug/debug.h:60: error: expected unqualified-id before numeric constant

Following is the beginning of debug.h with the leading comment removed. The lines that get the errors are the declarations of nested namespaces, e.g. namespace __debug { }

Code:
#ifndef _GLIBCXX_DEBUG_MACRO_SWITCH_H
#define _GLIBCXX_DEBUG_MACRO_SWITCH_H 1

/** Macros and namespaces used by the implementation outside of debug
 *  wrappers to verify certain properties. The __glibcxx_requires_xxx
 *  macros are merely wrappers around the __glibcxx_check_xxx wrappers
 *  when we are compiling with debug mode, but disappear when we are
 *  in release mode so that there is no checking performed in, e.g.,
 *  the standard library algorithms.
*/

// Debug mode namespaces.
namespace std
{
  namespace __debug { }
}

namespace __gnu_cxx
{
  namespace __debug { };
}

namespace __gnu_debug
{
  using namespace std::__debug;
  using namespace __gnu_cxx::__debug;
}

How do I get this to compile?

Thank you!

RO
# 2  
Old 11-01-2007
Quote:
Originally Posted by rimon
How do I get this to compile?
Looks like you need to predefine some macros so that to the compiler it appears in release mode.

If you are porting Windows code to HPUX 11.23 using gcc, have you first ported it to Linux using gcc? It reduces the number of unknowns.

Alternatively use HPUX's aCC.
# 3  
Old 11-04-2007
Thanks for your reply!
Before I even read it I found my problem and I'm quite ashamed to admit I didn't see it before.

I must say to my defense that I have inherited the makefiles I am using from people before me, and that they work fine on Linux and on AIX.
In case anyone is interested, the problem was that they use a compilation flag -D__debug so when the debug.h file tries to define a namespace named __debug, it is actually using the defined flag, and so it thinks it is defining the namespace with the name '1'.

Sorry to waste anyone's time on this.

RO
# 4  
Old 11-04-2007
Quote:
Originally Posted by rimon
Sorry to waste anyone's time on this.
No worries. We have all done similar, I'm sure.
# 5  
Old 03-11-2008
Quote:
Originally Posted by rimon

Sorry to waste anyone's time on this.

RO
It helps me out! Thank you
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Configure: error: X Window system libraries and header files are required

I am trying to compile thunar 1.8.4. It is giving me this error. configure: error: X Window system libraries and header files are required Ubuntu Mate 18.04 (2 Replies)
Discussion started by: drew77
2 Replies

2. Programming

Header file compilation using gcc in Sparc Solaris

I am facing problem while migrating the c++ code from Linux to Solaris. In linux the code is absolutly compiled fine with GCC compiler but when i am using the same in Solaris it coomplains bash-3.1$ gcc LibSip.h gcc: Compilation of header file requested The same command is working fine in... (2 Replies)
Discussion started by: mrupesh74
2 Replies

3. Programming

Compilation error : Please help

state_field state_abvr = { "AL","ALABAMA", "AK","ALASKA", "AZ","ARIZONA", "AR","ARKANSAS", "CA","CALIFORNIA", "CO","COLORADO", "CT","CONNECTICUT", "DE","DELAWARE", "DC","DISTRICT-OF-COLUMBIA", "FL","FLORIDA", "GA","GEORGIA", "HI","HAWAII", "ID","IDAHO", "IL","ILLINOIS",... (1 Reply)
Discussion started by: jagan_kalluri
1 Replies

4. HP-UX

compilation error

hello everyone, here i am attempting to compile a c++ submodule.OS is HP-UX. here i am getting the following error. ====================================== "Make: Don't know how to make compile. Stop." =================================== could you pls somebody suggest why this error is... (2 Replies)
Discussion started by: mannam srinivas
2 Replies

5. Linux

c++ compilation error

Hello every one, here i am attempting to compile a c++ module using gcc.it is throwing a error . error: ==== > make -S dummyCHARGP /usr/local/bin/gcc -g -DDEBUG -DMAT -I. -I/swtemp/usbs/cc/unix-ce/root/subsys/lib/Linux/ -I/opt/dce/include -I/opt/dce/include/dce ... (12 Replies)
Discussion started by: mannam srinivas
12 Replies

6. Shell Programming and Scripting

Using System calls without compilation

Hi... I would like to create a program that can be easily ported between several Linuxes... Therefore I would like to avoid compilation and have the ability to run it as shell scripts runs... My program need to call some system calls such as fork etc... do you know a way to use them without... (1 Reply)
Discussion started by: yamsin789
1 Replies

7. Programming

Compilation error

I am compiling a software xchm on solaris 10. First i run './configure' There is no error. But when i start compiling using 'gmake' following error shown /usr/local/include/wx-2.6/wx/x11/brush.h: In copy constructor `wxBrush::wxBrush(const wxBrush&)':... (3 Replies)
Discussion started by: mansoorulhaq
3 Replies

8. Programming

compilation error

Hi, While trying compile a C++ file in UNIX with gcc whose make rule involves the usage of /usr/ccs/bin/as, I get the following error: /usr/ccs/bin/as: No such file or directory /usr/ccs/bin/as: error: write error on output file "<filename>.o" *** Error code 1 clearmake: Error: Build... (2 Replies)
Discussion started by: smanu
2 Replies

9. Programming

Regarding compilation error.

Hi All, I facing the following compilation error; when I implementing the following logic. ostrstream ostr; ostr << (( scAxsm.getRecord( i ).getField( 2 ).getShort())%12)!=0?(( scAxsm.getRecord( i ).getField( 2 ).getShort())/12+1) : (( scAxsm.getRecord( i ).getField( 2 ).getShort())/12) <<... (1 Reply)
Discussion started by: sweta
1 Replies

10. AIX

Problem with namespaces

Hello all, I am having a problem with the following program on AIX:- // Namespace.cxx #include <iostream> using namespace std; #include <iostream.h> int main() { // cout<<"Hello world"; return 0; } On compilation:- $ xlC Namespace.cxx... (0 Replies)
Discussion started by: gupta_ca
0 Replies
Login or Register to Ask a Question