Mingw标志顺序

时间:2018-10-09 19:10:29

标签: c++ mingw

我使用mingw32编译一些C ++代码。经过一番尝试和大量搜索之后,我有一个问题:标志顺序似乎非常重要,以为我在互联网上几乎找不到任何能解释这一点的东西。例如:

g ++ main.cpp -L / lib -I / include -lmingw32 -lSDL2 -lSDL2main -Wall -g -o main.exe->编译

g ++ main.cpp -L / lib -I / include -lmingw32 -lSDL2main -lSDL2 -Wall -g -o main.exe->无法编译

g ++ main.cpp -L / lib -I / include -lSDL2 -lSDL2main -lmingw32 -Wall -g -o main.exe->编译

我能理解为什么 -lSDL2main 首先需要 -lSDL2 ,但是为什么 -lmingw32 的位置并不重要?

编辑:

我解释:根据我对编译过程的了解, .cpp首先出现,-l明确表示库(编译的最后一步)。那么,为什么要把 main.cpp 放在最后,为什么还要继续编译过程并以库中的错误结束。如果mingw没有任何源文件,而只是编译lib,那该怎么用?

1 个答案:

答案 0 :(得分:0)

这不是fag的顺序,而是库的顺序。最后一个库应该是每个人都需要的库,然后倒数第二个是不需要的库,等等。

为什么不需要libmingw32可能是因为SDL库不需要它。