Sender: perron AT art DOT alcatel DOT fr Message-Id: <34852612.66E1@art.alcatel.fr> Date: Wed, 03 Dec 1997 10:27:46 +0100 From: Olivier PERRON Mime-Version: 1.0 To: djgpp AT delorie DOT com Subject: Help: RSXNTDJ and FLEX seem not to be compatible, next episode Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Precedence: bulk Well, I had a litle time yesterday evening to work on my problems. It seems that my problems come from the stdio.h file that come with RSXNTDJ and which define the following stuff: extern __inline__ int feof (FILE *_s) { return (_s->_flags & _IOEOF ? 1 : 0); } extern __inline__ int ferror (FILE *_s) { return (_s->_flags & _IOERR ? 1 : 0); } /* Do not this function in application programs! */ extern __inline__ int _getc_inline (FILE *_s) { return (--_s->_rcount >= 0 ? (unsigned char)*_s->_ptr++ : _fill (_s)); } /* Do not this function in application programs! */ extern __inline__ int _putc_inline (int _c, FILE *_s) { return (--_s->_wcount >= 0 && (_c != '\n' || !(_s->_flags & _IOLBF)) ? (unsigned char)(*_s->_ptr++ = (char)_c) : _flush (_c, _s)); } #if defined (__MT__) #define getc(s) fgetc(s) #define putc(c,s) fputc(c,s) #else #define getc(s) _getc_inline(s) #define putc(c,s) _putc_inline(c,s) #endif extern __inline__ int getchar (void) { return getc (stdin); } extern __inline__ int putchar (int _c) { return putc (_c, stdout); } extern __inline__ int fileno (FILE *_s) { return _s->_handle; } But because of the "extern" keyword, those functions are not compiled in the object file and they seem to not be defined anywhere else. So, I've done a stdio.c file with the following lines #define extern #include and linked it with the rest. With this work around, my program is correctly linked. The next problem is that RSXNTDJ recognize that the flex library libfl.a is a standard djgpp library (ie not a rsxntdj one) and instead of a GUI application,it build a Console application ! Damned, it looks like I have to rebuild the flex lib my self with the RSXNTDJ tools. Olivier.