This is the mail archive of the
mailing list for the Cygwin project.
Re: how to compile programs using (n)curses
- To: Felix Natter <fnatter at gmx dot net>
- Subject: Re: how to compile programs using (n)curses
- From: "Charles S. Wilson" <cwilson at ece dot gatech dot edu>
- Date: Sat, 14 Apr 2001 00:30:07 -0400
- CC: cygwin at cygwin dot com
- References: <email@example.com>
Felix Natter wrote:
> when I try to compile a simple (n)curses program using cygwin,
> I get lots of "undefined reference"-messages, one for each ncurses function,
> but with a "impl_" prepended (i.e. impl_waddch).
You probably mean "_imp_" is prepended. The problem is a mismatch
between your compilation command and your link command. Apparently, you
(compile): gcc -c foo.c -o foo.o
and one of the following:
(link ): gcc -static -o foo.exe foo.o -lncurses
(link ): gcc -o foo.exe foo.o /usr/lib/libncurses.a
That is, you compiled with the default flags, which set things up for
dll linking, but then explicitly linked to the static library (by
specifying -static, or listing the static lib on the command line
If you want static linking, then you must compile all your object files
with the -DNCURSES_STATIC flag:
(compile): gcc -DNCURSES_STATIC -c foo.c -o foo.o
then link as above.
If you want dynamic linking, then compile normally (no _STATIC flags)
but link as follows:
(link ): gcc -o foo.exe foo.o -lncurses (no -static flag, or)
(link ): gcc -o foo.exe foo.o /usr/lib/libncurses.dll.a
You will probably find /usr/doc/Cygwin/ncurses-5.2.README of interest,
as well as the cygwin-announce messages referenced in that README.
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple