快速回答
g++ -c main.cpp -IC:\SFML-2.1\include -DSFML_STATIC
g++ main.o -o main -LC:\SFML-2.1\lib -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lopengl32 -lwinmm -lgdi32
main
长答案
我将向您展示如何静态或动态地链接项目。如果您在自己的计算机上运行项目,无论您选择哪种方式都没有关系,但是如果您想将可执行文件发送到另一台设备,请选择静态链接。
编译项目
首先,使用-c
标志编译您的项目,但不要链接。确保使用-I
前缀包含SFML头文件。
如果您要静态链接SFML,请使用-D
标志包含SFML_STATIC
。
g++ -c main.cpp -IC:\SFML-2.1\include
g++ -c main.cpp -IC:\SFML-2.1\include -DSFML_STATIC
连接项目
现在您需要链接SFML库。要链接库,请使用-l
前缀。为方便起见,链接您最有可能使用的库:-lsfml-graphics
、-lsfml-window
和-ssfml-system
。
如果您正在进行静态链接,请在库名前加上-s
前缀:-lsfml-graphics-s
、-lsfml-window-s
和-lsfml-system-s
。
您还需要链接某些库的依赖项,这些库是opengl32
、winmm
和gdi32
。同样,使用-l
前缀来链接这些库(即使您正在进行静态链接,也无需在这些库上使用-s
后缀)。
g++ main.o -o main -LC:\SFML-2.1\lib -lsfml-graphics -lsfml-window -lsfml-system -lopengl32 -lwinmm -lgdi32
g++ main.o -o main -LC:\SFML-2.1\lib -lsfml-graphics-s -lsfml-window-s -lsfml-system-s -lopengl32 -lwinmm -lgdi32
运行项目
最后,在命令行中输入可执行文件的名称:
main
完成了!