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

必要ないかもしれませんが、必要なWindows アプリをリンカーに伝える-L必要があるかもしれません。-mwindowsライブラリ ファイルを明示的に指定するには、次のように文字オプションなしで指定します。

gcc -I MinGW\include MinGW\lib\libgdi32.a -o helloworld helloworld.c

gcc リファレンスは次のとおりです: linking options

于 2012-10-01T14:31:40.923 に答える