Reputation: 11
Makefile is not working as expected. Compiling in windows with MSYS2 MinGW 64-bit - LDFLAGS is causing issue and I've tried two options.....
LDFLAGS = -lSDL2 -lncursesw -mconsole
and currently...
LDFLAGS = -lSDL2 -lncursesw -Wl,-e,mainCRTStartup
CFLAGS = -Wall -I/mingw64/include/SDL2 -I/mingw64/include/ncursesw
CC = gcc
all: tracker
tracker: main.o chip.o gui.o
$(CC) -o $@ $^ $(LDFLAGS)
%.o: %.c stuff.h Makefile
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f *.o tracker
.PHONY: all clean
error from MSYS2 MinGW 64-bit Terminal is:
gcc -o tracker main.o chip.o gui.o -lSDL2 -lncursesw -mconsole
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main':
C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67:(.text.startup+0xc5): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:8: tracker] Error 1
and in the second case
gcc -o tracker main.o chip.o gui.o -lSDL2 -lncursesw -Wl,-e,mainCRTStartup
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main':
C:/M/B/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67:(.text.startup+0xc5): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:8: tracker] Error 1
Tried two different approaches with the lines of code as above.
Upvotes: 1
Views: 43