1

这个语法不正确吗?

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
4

1 回答 1

1

switch的语法是不带前缀且不带扩展-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 参考:链接选项

于 2012-10-01T14:31:40.923 回答