▼スレッド
│
└◇588:Re:cygwinのライブラリを利用するVCアプリ [やまもと] 09/10 13:14
└◇591:Re[2]:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/13
やまもとと申します。スレッド一覧
下記のDLL化の作成方法が間違っています。
> [ビルドログ]
>
> $ gcc -shared testdll.c -o testdll.dll
URLの記述は、相手に断りを入れてないので、記述できませんが
googleで、下記の用語を全て入れて検索すれば、わかると思い
ます。
検索用語:DLL CygWin dlltool def
それでは、失礼します。
やまもとさん情報ありがとうございます。返事がおそくなってすみません。スレッド一覧
>下記のDLL化の作成方法が間違っています。
>
>> [ビルドログ]
>>
>> $ gcc -shared testdll.c -o testdll.dll
>
>URLの記述は、相手に断りを入れてないので、記述できませんが
>googleで、下記の用語を全て入れて検索すれば、わかると思い
>ます。
>
>検索用語:DLL CygWin dlltool def
検索してみました。もしかして、日本語で検索した一番最初の結果であるProject HeavyMoonさんの
Cygwin ユーザーズガイド [DLL のビルドと利用]の
ことをおっしゃっているのでしょうか?
DLLを作成するのに以下の5つのコマンドが必要とのことですが
gcc -s -Wl,--base-file,mydll.base -o mydll.dll mydll.o -Wl,-e,_mydll_init@12
dlltool --base-file mydll.base --def mydll.def --output-exp mydll.exp --dllname mydll.dll
gcc -s -Wl,--base-file,mydll.base,mydll.exp -o mydll.dll mydll.o -Wl,-e,_mydll_init@12
dlltool --base-file mydll.base --def mydll.def --output-exp mydll.exp --dllname mydll.dll
gcc -Wl,mydll.exp -o mydll.dll mydll.o -Wl,-e,_mydll_init@12
mydllの部分をtestdllに置き換えてやってみましたが、
最近のcygwinのgccでは1つ目のコマンドで
$ gcc -s -Wl,--base-file,testdll.base -o testdll.dll testdll.o -Wl,-e,_testdll_init@12
/usr/lib/libcygwin.a(libcmain.o): In function `main':
/home/Administrator/cygwin-snapshot-20020903-1/BUILD/i686-pc-cygwin/winsup/cygwin/../../../../winsup/cygwin/lib/libcmain
.c:31: undefined reference to `WinMain@16'
collect2: ld returned 1 exit status
というエラーがでてしまいます。どうもこのやり方は昔のバージョンのやりかたのようで、最近のgccでは
-shared オプションで簡単にDLLが作成できるみたいです。
このことは、最新のCygwin User's Guide(www.cygwin.com/cygwin-ug-net/dll.html)に記述されています。