EXL / NXEngine

A port of the open-source rewrite Cave Story game engine for various platforms. Original author is Caitlin "rogueeve" Shaw, https://nxengine.sourceforge.io/
https://exlmoto.ru/nxengine/
GNU General Public License v3.0
170 stars 35 forks source link

build error: "error: narrowing conversion of ‘-1’ from ‘int’ to ‘char’ [-Wnarrowing]" #5

Closed casey-ac closed 4 years ago

casey-ac commented 4 years ago

Developer, When attempting to build NXEngine I am encountering the below error. The host/target system is based on a Freescale/NXP P5020 SOC - this is a PPC64 system in current distribution by A-EON Technologies, running a Debian Buster based Linux Distribution. Please consider a fix as this system is currently available in the consumer marketplace. Thank you for your time.

fienix@Fienix:~/NXEngine$ make -f Makefile.linux g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o caret.o caret.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o console.o console.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o debug.o debug.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o floattext.o floattext.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o game.o game.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o input.o input.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o inventory.o inventory.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o main.o main.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o map.o map.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o map_system.o map_system.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o niku.o niku.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o object.o object.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o ObjManager.o ObjManager.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o p_arms.o p_arms.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o platform.o platform.cpp g++ -c -pipe -O2 -I/usr/include -I/usr/include/SDL -I/usr/local/include -I/usr/local/include/SDL -I. -o player.o player.cpp player.cpp: In function ‘void PDoLooking()’: player.cpp:727:53: error: narrowing conversion of ‘-1’ from ‘int’ to ‘char’ [-Wnarrowing] 727 | { LEFTKEY, RIGHTKEY, UPKEY, JUMPKEY, FIREKEY, -1 }; | ^ make: *** [Makefile.linux:1110: player.o] Error 1

EXL commented 4 years ago

Hello, @casey-ac!

See this line: https://github.com/EXL/NXEngine/blob/44113bb3bfd7ac8501f533b54af216a9a546019d/player.cpp#L726

Please change it to static const signed char and run make again.

If this fixes your problem, I'll commit.

casey-ac commented 4 years ago

@EXL Perfect! This worked, the build finished successfully and the app runs. Many thanks!

parrotsky commented 1 year ago

Thanks! very useful tip.

EXL commented 1 year ago

@parrotsky Are you also faced with PowerPC programming?