C++ SDL2 上的生成文件
Makefile on C++ SDL2
我正在使用 C++ SDL2 并尝试加载 3 个 .cpp
文件以及 2 个 .h
文件。
我收到此错误消息:
g++ main.o window.o rect.o -o output -Ldeps/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image
deps/lib/SDL2main.lib(Win32/Release/SDL_windows_main.obj):(.text$mn+0x0): multiple definition of `main'
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
NMAKE : fatal error U1077: 'C:\MinGW\bin\g++.EXE' : return code '0x1'
Stop.
这是我目前 Makefile
上的内容
CXXFLAGS = -Ideps/include -std=c++0x
LXXFLAGS = -Ldeps/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image
output: main.o window.o rect.o
g++ main.o window.o rect.o -o output $(LXXFLAGS)
main.o: main.cpp
g++ main.cpp -c $(CXXFLAGS)
window.o: window.cpp Window.h
g++ -c window.cpp $(CXXFLAGS)
rect.o: rect.cpp rect.h
g++ -c rect.cpp $(CXXFLAGS)
编辑:
#include "window.h"
#include "rect.h"
void pollEvents(Window &window, Rect &rect) {
SDL_Event event;
if (SDL_PollEvent(&event)) {
rect.pollEvents(event);
window.pollEvents(event);
}
}
using namespace std;
int main(int argc, char **argv) {
Window window("Cuphead", 800, 600);
Rect rect(window, 120, 120, 100, 100, "res/char.png");
while (!window.isClosed()) {
pollEvents(window, rect);
rect.draw();
window.clear();
}
return 0;
}
已解决! -lmingw32 必须被删除,也回答了“主要”错误的多重定义
编辑:使用 VS 2019 命令提示符
我正在使用 C++ SDL2 并尝试加载 3 个 .cpp
文件以及 2 个 .h
文件。
我收到此错误消息:
g++ main.o window.o rect.o -o output -Ldeps/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image
deps/lib/SDL2main.lib(Win32/Release/SDL_windows_main.obj):(.text$mn+0x0): multiple definition of `main'
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../libmingw32.a(main.o):(.text.startup+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
NMAKE : fatal error U1077: 'C:\MinGW\bin\g++.EXE' : return code '0x1'
Stop.
这是我目前 Makefile
CXXFLAGS = -Ideps/include -std=c++0x
LXXFLAGS = -Ldeps/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image
output: main.o window.o rect.o
g++ main.o window.o rect.o -o output $(LXXFLAGS)
main.o: main.cpp
g++ main.cpp -c $(CXXFLAGS)
window.o: window.cpp Window.h
g++ -c window.cpp $(CXXFLAGS)
rect.o: rect.cpp rect.h
g++ -c rect.cpp $(CXXFLAGS)
编辑:
#include "window.h"
#include "rect.h"
void pollEvents(Window &window, Rect &rect) {
SDL_Event event;
if (SDL_PollEvent(&event)) {
rect.pollEvents(event);
window.pollEvents(event);
}
}
using namespace std;
int main(int argc, char **argv) {
Window window("Cuphead", 800, 600);
Rect rect(window, 120, 120, 100, 100, "res/char.png");
while (!window.isClosed()) {
pollEvents(window, rect);
rect.draw();
window.clear();
}
return 0;
}
已解决! -lmingw32 必须被删除,也回答了“主要”错误的多重定义
编辑:使用 VS 2019 命令提示符