[Met_help] [rt.rap.ucar.edu #85449] History for Question about "-traditional-cpp"

John Halley Gotway via RT met_help at ucar.edu
Tue Jul 9 12:03:33 MDT 2019


----------------------------------------------------------------
  Initial Request
----------------------------------------------------------------

Dear MET-Help Team

I am new member and It is my first time to ask to MET-Help team. I just
started to use M.E.T-7.0 tool one week ago and I am using it for my study.
I follow the tutorial from the M.E.T homepage and download all required
libraries.

I am using g++ version 5.4.0, BUFRLIB version 10-2-3, gcc and gfortran for
my compilers, gsl version 2.4, NetCDF version 4.6.1 running under
Linux-Ubuntu 16.04 64bit operating system.

      # export FC=gfortran
      # export CC=gcc
      # export CXX=g++

I could run NetCDF and GSL without any error, but when I run installation
of BUFRLIB, I got error as below:

endiantest.c:2:130: warning: implicit declaration of function ‘putchar’
[-Wimplicit-function-declaration]
 izeof(x));  for (i=1; i<=sizeof(x); i++) {
c=((x>>(byte_size*(sizeof(x)-i)))&mask);      putchar(c==

^
endiantest.c:17:2: note: in expansion of macro ‘Order’
  Order(j);
  ^
endiantest.c:2:165: warning: implicit declaration of function ‘printf’
[-Wimplicit-function-declaration]
  i++) {      c=((x>>(byte_size*(sizeof(x)-i)))&mask);      putchar(c==0 ?
'?' : (char)c);  }  printf("\n"

^
endiantest.c:17:2: note: in expansion of macro ‘Order’
  Order(j);
  ^
endiantest.c:2:165: warning: incompatible implicit declaration of built-in
function ‘printf’
  i++) {      c=((x>>(byte_size*(sizeof(x)-i)))&mask);      putchar(c==0 ?
'?' : (char)c);  }  printf("\n"

^
endiantest.c:17:2: note: in expansion of macro ‘Order’
  Order(j);
  ^
endiantest.c:2:165: note: include ‘<stdio.h>’ or provide a declaration of
‘printf’
  i++) {      c=((x>>(byte_size*(sizeof(x)-i)))&mask);      putchar(c==0 ?
'?' : (char)c);  }  printf("\n"

^
endiantest.c:17:2: note: in expansion of macro ‘Order’
  Order(j);
  ^
endiantest.c: At top level:
endiantest.c:31:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
 main()
 ^
irev.F:8:59: warning: missing terminating " character
 C ABSTRACT: THIS FUNCTION WILL, WHEN THE LOCAL MACHINE IS "LITTLE-
                                                           ^
irev.F:9:11: warning: missing terminating " character
 C   ENDIAN" (I.E., USES A RIGHT TO LEFT SCHEME FOR NUMBERING THE BYTES
           ^
irev.F:44:54: warning: missing terminating " character
 C                "BIG-ENDIAN" OR "LITTLE-ENDIAN", IF "BIG-ENDIAN THEN



I followed the advice in the README_BUFRLIB file regarding adding the
-traditional-cpp flag
added to the cpp calls in preproc.sh but I got a little confuse in how
to configure this.

Thank you very much for the time and help.

Best regards,
Soares


----------------------------------------------------------------
  Complete Ticket History
----------------------------------------------------------------

Subject: Question about "-traditional-cpp"
From: John Halley Gotway
Time: Thu Jun 07 11:27:28 2018

Hello Soares,

I see you have questions about compiling BUFRLIB for use with MET.
Yesterday, I helped another user in getting MET and it's dependent
libraries compiled.  I posted a tarball for him to grab which contains
tarballs for all the dependent libraries as well a shell script we use
to
compile it on a variety of platforms.  Hopefully, this script will
make it
easier for you to get it compiled...

Please pull this tar file from our anonymous ftp site:
ftp://ftp.rap.ucar.edu/incoming/irap/met_help/MET_install_script.tar.gz

When you untar it, you'll find two subdirectories, scripts and
tar_files.
You'll want to run scripts/compile_all.sh.  This is what we've used to
compile MET and it's dependent libraries in a variety of places.
You'll
need to set 4 environment variables, but it's pretty obvious at the
top of
the script.  If your machine doesn't use "modules" you'll want to
comments
out the lines that begin with "module".

You'll likely need to tweak it for your platform, but hopefully it
makes
the compilation process much smoother.

Thanks,
John




On Thu, Jun 7, 2018 at 3:21 AM, isakhar sakhar isakhar via RT <
met_help at ucar.edu> wrote:

>
> Thu Jun 07 03:21:09 2018: Request 85449 was acted upon.
> Transaction: Ticket created by isakhar.inside13 at gmail.com
>        Queue: met_help
>      Subject: Question about "-traditional-cpp"
>        Owner: Nobody
>   Requestors: isakhar.inside13 at gmail.com
>       Status: new
>  Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=85449 >
>
>
> Dear MET-Help Team
>
> I am new member and It is my first time to ask to MET-Help team. I
just
> started to use M.E.T-7.0 tool one week ago and I am using it for my
study.
> I follow the tutorial from the M.E.T homepage and download all
required
> libraries.
>
> I am using g++ version 5.4.0, BUFRLIB version 10-2-3, gcc and
gfortran for
> my compilers, gsl version 2.4, NetCDF version 4.6.1 running under
> Linux-Ubuntu 16.04 64bit operating system.
>
>       # export FC=gfortran
>       # export CC=gcc
>       # export CXX=g++
>
> I could run NetCDF and GSL without any error, but when I run
installation
> of BUFRLIB, I got error as below:
>
> endiantest.c:2:130: warning: implicit declaration of function
‘putchar’
> [-Wimplicit-function-declaration]
>  izeof(x));  for (i=1; i<=sizeof(x); i++) {
> c=((x>>(byte_size*(sizeof(x)-i)))&mask);      putchar(c==
>
> ^
> endiantest.c:17:2: note: in expansion of macro ‘Order’
>   Order(j);
>   ^
> endiantest.c:2:165: warning: implicit declaration of function
‘printf’
> [-Wimplicit-function-declaration]
>   i++) {      c=((x>>(byte_size*(sizeof(x)-i)))&mask);
putchar(c==0 ?
> '?' : (char)c);  }  printf("\n"
>
> ^
> endiantest.c:17:2: note: in expansion of macro ‘Order’
>   Order(j);
>   ^
> endiantest.c:2:165: warning: incompatible implicit declaration of
built-in
> function ‘printf’
>   i++) {      c=((x>>(byte_size*(sizeof(x)-i)))&mask);
putchar(c==0 ?
> '?' : (char)c);  }  printf("\n"
>
> ^
> endiantest.c:17:2: note: in expansion of macro ‘Order’
>   Order(j);
>   ^
> endiantest.c:2:165: note: include ‘<stdio.h>’ or provide a
declaration of
> ‘printf’
>   i++) {      c=((x>>(byte_size*(sizeof(x)-i)))&mask);
putchar(c==0 ?
> '?' : (char)c);  }  printf("\n"
>
> ^
> endiantest.c:17:2: note: in expansion of macro ‘Order’
>   Order(j);
>   ^
> endiantest.c: At top level:
> endiantest.c:31:1: warning: return type defaults to ‘int’ [-
Wimplicit-int]
>  main()
>  ^
> irev.F:8:59: warning: missing terminating " character
>  C ABSTRACT: THIS FUNCTION WILL, WHEN THE LOCAL MACHINE IS "LITTLE-
>                                                            ^
> irev.F:9:11: warning: missing terminating " character
>  C   ENDIAN" (I.E., USES A RIGHT TO LEFT SCHEME FOR NUMBERING THE
BYTES
>            ^
> irev.F:44:54: warning: missing terminating " character
>  C                "BIG-ENDIAN" OR "LITTLE-ENDIAN", IF "BIG-ENDIAN
THEN
>
>
>
> I followed the advice in the README_BUFRLIB file regarding adding
the
> -traditional-cpp flag
> added to the cpp calls in preproc.sh but I got a little confuse in
how
> to configure this.
>
> Thank you very much for the time and help.
>
> Best regards,
> Soares
>
>

------------------------------------------------


More information about the Met_help mailing list