※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

更新: 2010-10-01 13:42:53 (Fri)

お品書き

コンパイル & リンク

$ gcc -o foo.o -c foo.c
$ gcc -o foo.exe foo.o

DLLの作成

順番に

$ dlltool --export-all --output-def foo.def foo.o
$ dllwrap --driver-name gcc --def foo.def -o foo.dll foo.o
$ dlltool --dllname foo.dll --def foo.def --output-lib libfoo.a

まとめて

$ dllwrap --export-all --output-def foo.def --implib libfoo.a --driver-name gcc -o foo.dll foo.o

mingw32なDLL(cygwin)

'dllwrap'に'--target i386-mingw32'
リンク時に'--driver-name=gcc -mno-cygwin'

使い方

$ gcc -o bar.exe bar.c -L. -lfoo

依存してるDLLの調査

$ objdump -p example.exe | grep "DLL Name"

オプションいろいろ

Windowsアプリでコンソールを表示する

-Wl,--subsystem,console

Windowsアプリのコンパイル

-mwindows

cygwin環境に依存しないバイナリをビルドする

-mno-cygwin