delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/07/11/10:09:31

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <18404720.post@talk.nabble.com>
Date: Fri, 11 Jul 2008 07:08:55 -0700 (PDT)
From: leeand00 <leeand00 AT gmail DOT com>
To: cygwin AT cygwin DOT com
Subject: Compiling cdecl and c++decl for cygwin?
MIME-Version: 1.0
X-Nabble-From: leeand00 AT gmail DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Hello I just downloaded the source to cdecl-2.5 from
ftp://sunsite.unc.edu/pub/Linux/devel/lang/c//cdecl-2.5.tar.gz

cdecl/c++decl is a very old program for converting compilable C declarations
and typecasts from descriptive English phrases and back again.

my development directory looks like the following:

[quote author="directory"]
XETEX AT ANDY /cygdrive/c/Users/XETEX/Desktop/temp/cdecl-2.5/cdecl-2.5
$ ls
Makefile  c++decl.1  cdecl.c   cdgram.y  readline  testset
README    cdecl.1    cdgram.c  cdlex.l   termcap   testset++
[/quote]

Note that I had to go retrieve the readline 5.2 src and termcap 1.3.1 src as
they were not included in the download.

I attempted to compile cdecl using make and gcc (as installed per packages
available from cygwin) and I received the following error:

[quote author="make"]
XETEX AT ANDY /cygdrive/c/Users/XETEX/Desktop/temp/cdecl-2.5/cdecl-2.5
$ make
yacc cdgram.y && mv y.tab.c cdgram.c
conflicts: 7 shift/reduce
lex cdlex.l && mv lex.yy.c cdlex.c
/bin/sh: lex: command not found
make: *** [cdlex.c] Error 127
[/quote]

I opened Makefile and discovered that lex is not included in Cygwin; however
flex is included in Cygwin.  So I changed the references to lex within
Makefile to flex, and tried to compile again using the make command.

This time I received the following error:

[quote author="make"]
flex cdlex.l && mv lex.yy.c cdlex.c
gcc -s -O2 -DUSE_READLINE -o c++decl cdecl.c -lreadline -ltermcap
cdecl.c:141: error: conflicting types for 'setprogname'
/usr/include/cygwin/stdlib.h:22: error: previous declaration of
'setprogname' was here
cdecl.c:141: error: conflicting types for 'setprogname'
/usr/include/cygwin/stdlib.h:22: error: previous declaration of
'setprogname' was here
In file included from /usr/include/sys/unistd.h:159,
                 from /usr/include/unistd.h:4,
                 from lex.yy.c:588,
                 from cdecl.c:193:
/usr/include/getopt.h:52: error: conflicting types for 'getopt'
cdecl.c:127: error: previous declaration of 'getopt' was here
/usr/include/getopt.h:52: error: conflicting types for 'getopt'
cdecl.c:127: error: previous declaration of 'getopt' was here
cdecl.c: In function `attempt_completion':
cdecl.c:402: warning: assignment makes pointer from integer without a cast
cdecl.c: In function `main':
cdecl.c:1255: warning: assignment from incompatible pointer type
make: *** [c++decl] Error 1
[/quote]

How can I get cdecl/c++decl to compile on window or cygwin?  Is there a
precompiled binary port for windows?  Has cdecl been replaced by some other
newer tool?

Thank you, 
    Andrew J. Leer
-- 
View this message in context: http://www.nabble.com/Compiling-cdecl-and-c%2B%2Bdecl-for-cygwin--tp18404720p18404720.html
Sent from the Cygwin list mailing list archive at Nabble.com.


--
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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019