Cygwin なんでも掲示板

一覧最新記事過去一覧 | 検索FAQアンテナHOME
(新規投稿・発言はできません)


スレッド

└◇591:
Re[2]:cygwinのライブラリを利用するVCアプリ [S.Taka] 09/13 23:34


591● Re[2]:cygwinのライブラリを利用するVCアプリ[ S.Taka ] 2002 09/13 23:34
やまもとさん情報ありがとうございます。返事がおそくなってすみません。

>下記の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)に記述されています。
スレッド一覧

早田のホームページへ
CGIROOM