EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: problem compiling edm
From: Pierrick Hanlet <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Date: Thu, 2 Feb 2017 15:57:05 +0000
Hi Mark,
Thank you for the quick response. Initially this appeared to work, but I had many more arrays to which I needed to do this. After having modified them all,
it appears that I've replaced one problem for another. Now I get:


../expString.cc:722:32: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings] /usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -DSINGLE_THREADED=1 -D__epics__=1 -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../../include/edm/compiler/gcc -I../../../../include/edm/os/Linux -I../../../../include/edm -I/home/epics/epicsDEV/base/include/compiler/gcc -I/home/epics/epicsDEV/base/include/os/Linux -I/home/epics/epicsDEV/base/include -I/home/epics/epicsDEV/extensions/include -I../../util -I../../lib -I/usr/include -I/usr/include -c ../cursor.cc ../cursor.cc: In member function ‘void cursorClass::create(Display*, Window, Colormap)’: ../cursor.cc:416:39: error: invalid conversion from ‘unsigned char*’ to ‘char*’ [-fpermissive]
    cross_width, cross_height, 1, 0, 1 );
                                       ^
In file included from ../cursor.h:22:0,
                 from ../cursor.cc:19:
/usr/include/X11/Xlib.h:1611:15: note: initializing argument 3 of ‘Pixmap XCreatePixmapFromBitmapData(Display*, Drawable, char*, unsigned int, unsigned int, long unsigned int, long unsigned int, unsigned int)’
 extern Pixmap XCreatePixmapFromBitmapData(
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../cursor.cc:419:39: error: invalid conversion from ‘unsigned char*’ to ‘char*’ [-fpermissive]
    cross_width, cross_height, 1, 0, 1 );

etc.
Thanks,
Pierrick


On 02/02/2017 02:23 PM, Mark Rivers wrote:
That line is this:

static char pntrWithHelp_bits[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x42,
    0x20, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x40, 0xe0, 0x00, 0x00, 0x60,
    0xe0, 0x01, 0x00, 0x30, 0xe0, 0x03, 0x00, 0x08, 0xe0, 0x07, 0x00, 0x08,
    0xe0, 0x0f, 0x00, 0x08, 0xe0, 0x1f, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x08,
    0xe0, 0x03, 0x00, 0x00, 0xe0, 0x06, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00,
    0x20, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00,
    0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

I suspect the problem is that char is a signed type and the compiler is complaining because an integer larger than 127 is being assigned (e.g. 0xe0).  What happens if you change that to "static unsigned char"?

Mark


________________________________________
From: [email protected] [[email protected]] on behalf of Pierrick Hanlet [[email protected]]
Sent: Thursday, February 02, 2017 8:15 AM
To: [email protected]
Subject: problem compiling edm

I've a new pc on which I'm running Fedora release 25.  I'm using base
3.15.5.

I'm attempting to build edm, but whilst attempting to compile, I get:

make[2]: Entering directory
'/home/epics/epicsDEV/extensions/src/edm/lib/O.linux-x86_64'
/usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_  -DUNIX
-Dlinux     -O3 -g   -Wall -DSINGLE_THREADED=1 -D__epics__=1
-mtune=generic     -m64 -fPIC -I. -I../O.Common -I. -I. -I..
-I../../../../include/edm/compiler/gcc
-I../../../../include/edm/os/Linux -I../../../../include/edm
-I/home/epics/epicsDEV/base/include/compiler/gcc
-I/home/epics/epicsDEV/base/include/os/Linux
-I/home/epics/epicsDEV/base/include
-I/home/epics/epicsDEV/extensions/include        -I../../util
-I../../lib -I/usr/include -I/usr/include    -c ../cursor.cc
../cursor.cc: In member function ‘void cursorClass::create(Display*,
Window, Colormap)’:
../cursor.cc:82:50: error: narrowing conversion of ‘224’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]
      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
                                                    ^
../cursor.cc:82:50: error: narrowing conversion of ‘224’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]
../cursor.cc:82:50: error: narrowing conversion of ‘224’ from ‘int’ to
‘char’ inside { } [-Wnarrowing]
and many more lines of the same.

I can't find this problem in tech-talk, nor with a web search. Has
anyone run into this problem and if so, how did you resolve it?
Many thanks,
Pierrick



Replies:
RE: problem compiling edm Mark Rivers
References:
problem compiling edm Pierrick Hanlet
RE: problem compiling edm Mark Rivers

Navigate by Date:
Prev: Re: synApps and external sequencer installation Luca Cavalli
Next: RE: problem compiling edm Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: problem compiling edm Mark Rivers
Next: RE: problem compiling edm Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <20172018  2019  2020  2021  2022  2023  2024