我正在使用g ++来编译一个小项目,它只是编译得很好。
当我从控制台运行exe时,它只是冻结并且什么都不打印(我必须从任务管理器关闭它)。
我将main更改为一个简单的“hello world”(使用原始makefile编译它),问题仍然存在。
然后我发现如果我用g++ -c main.cpp
g++ -o main.o
编译它(helloworld版本)它实际上是有效的。
所以问题似乎在链接器的某处可能。
我将发布Makefile:
exe: main
g++ -L"C:/SFML-1.6/lib" -o platform01 main.o P3d_Camera.o P3d_Entity.o P3d_InputManager.o P3d_Math.o P3d_Object.o P3d_Renderer.o P3d_Timer.o P3d_Window.o utils.o -lsfml-graphics -lsfml-window -lsfml-system -lglu32 -lopengl32
main:
g++ -c -Wall -I"C:/SFML-1.6/include" main.cpp
g++ -c -Wall -I"C:/SFML-1.6/include" core/P3d_Camera.cpp core/P3d_Entity.cpp core/P3d_InputManager.cpp core/P3d_Math.cpp core/P3d_Object.cpp core/P3d_Renderer.cpp core/P3d_Timer.cpp core/P3d_Window.cpp core/utils.cpp
clean:
rm *.o platform01.exe
和main.cpp:
#include "stdio.h"
#include "proch3d.h"
int main() {
printf("helloworld\n");
return 0;
}
P.S。在linux上它编译并运行完美