Force libncursesw Use While Compiling

I see that the pre-compiled executables from jenkins-latest use libncursesw.so.5. When I have both libncurses5-dev and libncursesw5-dev installed, the compilation fully finishes with a compiled executable, but ldd shows it using libncurses.so.6. If I uninstall libncurses5-dev to try to get the libncursesw version, the compiler crashes saying ncurses.h not found. So, how do I force the compiler to use libncursesw?

The reason I ask is I noticed that my compiled versions of the ASCII Cataclysm do not display the upside down question mark, ¿, correctly, instead displaying ‘M-BM-(’, which, of course, messes up the screen. I believe this could be due to the above, as when I swap in the jenkins pre-compiled version the glitch goes away. I see this when I butcher cockroaches as well as other times.

Did you find a solution? I’m having the same problem, building from github with gcc or clang.

Are you using make or cmake?

I’m using make, with either:

make -j16 NATIVE=linux64 CLANG=1 TILES=0 LOCALIZE=0
make -j16 NATIVE=linux64 TILES=0 LOCALIZE=0

Turning off LOCALIZE means that you do not link against libintl, iconv, or ncursesw. There’s an easy fix here, just go into the Makefile, line 696 or so, and changes those ncurses to ncursesw.

1 Like

Ah, thanks!

I don’t recall why I was using LOCALIZE=0, likely just to avoid unnecessary dependencies. I just removed that to use the default LOCALIZE=1, instead of editing the Makefile. That fixed the problem. So this has worked:

make -j16 NATIVE=linux64 CLANG=1 TILES=0
1 Like