这种语法不正确吗?
C:\Users\Brett\Compilers>gcc -I MinGW\include -l MinGW\lib\libgdi32.a -o hello
world helloworld.c
目录很好,我必须包含并以错误的顺序链接?
这是输出:
c:/users/Brett/compilers/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw
2/bin/ld.exe: cannot find -lMinGW\lib\libgdi32.a
collect2: ld returned 1 exit status
答案 0 :(得分:1)
-l
开关的语法是没有lib
前缀且没有扩展名的库名。如果找不到,则应使用-L
选项给出其目录。所以我会写:
gcc -I MinGW\include -L MinGW\lib -lgdi32 -o helloworld helloworld.c
可能不需要-L
,也许您还需要-mwindows
告诉链接器您想要Windows应用程序。要明确指定库文件,请不要使用任何字母选项,如下所示:
gcc -I MinGW\include MinGW\lib\libgdi32.a -o helloworld helloworld.c
以下是gcc参考:linking options。