mingw makefile编译器不会输出所有内容

mingw makefile compiler not outputting everything

本文关键字:输出 makefile 编译器 mingw      更新时间:2023-10-16

我已经用SDL解决了一个错误,但是Quentin对我发现了另一个问题。(再次感谢您的通知。)

这是一个问题:可执行文件中的任何内容都没有记录在控制台中,我有一个错误,我必须使用.c_str()将变量转换为字符串,但是由于某种原因,该汇编没有对此表示任何说法。

这是我的makefile的样子(我对Makefiles并不是很好,因为我真的不太了解它的工作原理,但这就是我现在所拥有的):

#Is it in debug mode?
DEBUG=yes
SHELL='sh -x'
CC = G++
#OBJS specifies which files to compile as part of the project
OBJS = src/main.cpp
#OBJ_NAME specifies the name of the executable
OBJ_NAME = Game
INCLUDE_PATHS = -IC:/mingw_dev_lib/include/SDL2
LIBRARY_PATHS = -LC:/mingw_dev_lib/lib
COMPILER_FLAGS = -w -Wl,-subsystem,windows
LINKER_FLAGS = -lmingw32 -lSDL2main -lSDL2 -lSDL2_image
#This is the target that compiles the executable
all : $(OBJS)
ifeq ($(DEBUG),yes)
        g++ $(OBJS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(COMPILER_FLAGS) -g $(LINKER_FLAGS) -o Debug$(OBJ_NAME)
else
        g++ $(OBJS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(COMPILER_FLAGS) $(LINKER_FLAGS) -o Release$(OBJ_NAME)
endif

我想一旦查看编译器标志,问题很明显...

请查看:禁用所有GCC警告

然后意识到,您的COMPILER_FLAGS = -w -Wl,-subsystem,windows包含-w标志。您应该从删除它开始(无论是什么原因首先是...),包括-Wall(感谢@keltar指出此问题),然后查看警告是否像您想要的那样开始出现。