0

I'm trying to compile an ncurses C program on Xubuntu 19.04 for Windows using mingw.

My compile command: x86_64-w64-mingw32-gcc -lncursesw -o thg.exe main.c

This is how I included ncurses in my program:

#include <ncursesw/ncurses.h>

Here's the errors:

/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x127): undefined reference to `newwin'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x14b): undefined reference to `keypad'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x15d): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x17c): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x18e): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x464): undefined reference to `wgetch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x489): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x49b): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x4ad): undefined reference to `delwin'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x4e6): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x531): undefined reference to `wborder'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x597): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x5c5): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x638): undefined reference to `mvwprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x692): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x6c0): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x6ee): undefined reference to `wmove'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x719): undefined reference to `whline'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x75d): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x784): undefined reference to `mvwprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x7c8): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x7e8): undefined reference to `wmove'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x813): undefined reference to `whline'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x833): undefined reference to `wmove'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x85e): undefined reference to `whline'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x882): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x8d3): undefined reference to `mvwprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x8f7): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x917): undefined reference to `wmove'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x942): undefined reference to `whline'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x964): undefined reference to `mvwprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x976): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x9b4): undefined reference to `newwin'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x9cf): undefined reference to `keypad'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0xf3f): undefined reference to `wgetch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x179d): undefined reference to `wgetch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1837): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1846): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1855): undefined reference to `delwin'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1987): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x19a4): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x19dc): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x19f9): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1a18): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1a2b): undefined reference to `wgetch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1a46): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1bd8): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1be4): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1c29): undefined reference to `wborder'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1c4e): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1c63): undefined reference to `wmove'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1c79): undefined reference to `waddch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1c9e): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1d0a): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1d59): undefined reference to `wmove'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1d8e): undefined reference to `waddch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1dc6): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1e04): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1eba): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1ef8): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1f2a): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1f69): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1f8d): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1fac): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1fd3): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1fef): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x1ffb): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x20b0): undefined reference to `wgetch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x216e): undefined reference to `wgetch'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x21a3): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x21c0): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2202): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x221f): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2243): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2285): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x22a9): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x22e8): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x233a): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x235b): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x238c): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x23ab): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x23f0): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2413): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2432): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2451): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2463): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2487): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x24a4): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x24e6): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2503): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2526): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2545): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2587): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x25aa): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x25c7): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x25e6): undefined reference to `wattr_on'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x262b): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x264e): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x266d): undefined reference to `wattr_off'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x268c): undefined reference to `mvprintw'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x269e): undefined reference to `wrefresh'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x26ca): undefined reference to `initscr'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x26cf): undefined reference to `noecho'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x26d4): undefined reference to `start_color'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x26de): undefined reference to `curs_set'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x26f5): undefined reference to `keypad'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x26fa): undefined reference to `cbreak'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x271a): undefined reference to `init_pair'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2744): undefined reference to `init_pair'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x2760): undefined reference to `getmaxy'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x277d): undefined reference to `getmaxx'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x27cb): undefined reference to `wclear'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.text+0x27d0): undefined reference to `endwin'
/usr/bin/x86_64-w64-mingw32-ld: /tmp/ccfeYrvf.o:main.c:(.rdata$.refptr.stdscr[.refptr.stdscr]+0x0): undefined reference to `stdscr'
collect2: error: ld returned 1 exit status

I downloaded ncursesw from https://invisible-island.net/ncurses/#download_mingw

I then copied the contents to where I think they were supposed to go:

I copied the contents of bin to /usr/x86_64-w64-mingw32/bin/,

I copied the contents of lib to /usr/x86_64-w64-mingw32/lib/,

and I copied the contents of include to /usr/x86_64-w64-mingw32/include/

This is my first question here, and I feel like I left something out. If you need more info please let me know

Lone_Wolf
  • 34
  • 3
  • 2
    When linking, the order of arguments matter! Put libraries *last*. – Some programmer dude Apr 30 '19 at 18:46
  • Place `-lncursesw` at the end of the compile command. Also see [Why does the order in which libraries are linked sometimes cause errors in GCC?](https://stackoverflow.com/q/45135/608639) and [Why does the order of '-l' option in gcc matter?](https://stackoverflow.com/q/11893996/608639) – jww Apr 30 '19 at 18:51
  • compile using this command gcc filename.c -lncursesw – Mr. Suklav Ghosh May 01 '19 at 07:13

0 Answers0