Marcel wrote: > I've been using a particular set of C-code for years > on several systems (mostly linux on PC, or Unix on > some Sun) and could always get it to work when I moved > to a new machine. > > Now, I'm trying to get it to work on a PC with cygwin. > > cygcheck claims I have gcc version 3.3.3-3 OK. > > I am NOT an experienced C or cygwin user, but the > problems I keep running into, appear to me that gcc > with cygwin behaves very differently from whatever I > had on the previous systems. > > gcc -g -Wall -c flm.c > flm.c:37: error: initializer element is not constant > make: *** [flm.o] Error 1 > > The offending line.37 was: > FILE *ch_par=stdout,*ch_verify=NULL; > > In my ignorance, I have to assume that gcc/cygwin is > not compatible with other gcc implementations. Can > that > be? Or could I have a botched installation of > cygwin+gcc?
Probably neither. I think the C standard says that stdout might not be a compile time constant. The fix to this is th change line 37 to: FILE *ch_par = NULL, *ch_verify = NULL; Then, in the first function that uses ch_par, set it to stdout. If this file has a main() function you can just do this at the start of main: ch_par = stdout; if the file doesn't contain a main() function you should probably do this in each function that uses ch_par: if (ch_par == NULL) ch_par = stdout ; Hope this helps, Erik -- +-----------------------------------------------------------+ Erik de Castro Lopo [EMAIL PROTECTED] (Yes it's valid) +-----------------------------------------------------------+ "When your hammer is C++, everything begins to look like a thumb." -- Steve Haflich, in comp.lang.c++ -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/