Cygwin なんでも掲示板

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


スレッド

└◇633:
MinGWでのfork [Kiki] 10/04 14:30

 └◇634:Re:MinGWでのfork [nsym] 10/04
  └◇635:Re:MinGWでのfork [Kiki] 10/04 <


633● MinGWでのfork[ Kiki ] 2002 10/04 14:30
はじめまして、Kikiといいます。よろしくお願いします。

fork()関数を使用したプログラムをLinux上で
作成しました。コンパイル時には、特にオプションも
つけずに
gcc file.c
でコンパイルできたのですが、
gcc -mno-cygwin -mwindows file.c
と、Windowsアプリケーションとしてコンパイルすると
undefined reference to `fork'
collect2: ld retruned 1 exit status
と怒られてしまいます。

Web上で検索すると、
-lnsl -lsocket
というオプションをつけてコンパイルしている例が
あったので試してみたのですが、ldに
cannot find -lnsl
といわれてしまいました。-lsocketも同様です。
Windowsアプリケーションとしてコンパイルする方法について
なにか御存知の方、お知恵をかしてください。

よろしくお願いします。
スレッド一覧


634● Re:MinGWでのfork[ nsym ] 2002 10/04 15:21
-no-cygwin -mwindows を外してみてください。
fork() は cygwin.dll に含まれているので -no-cygwin は指定できません。
そうして出来た EXE は cygwinコンソールで実行されることになります。
main()で始まるけど通常の Win32アプリとして起動したい場合は
ソースに
extern void mainCRTStartup(void);
extern void WinMainCRTStartup(void) { mainCRTStartup(); }
を含め -mwindows でコンパイルすればいいはずです。
スレッド一覧


635● Re:MinGWでのfork[ Kiki ] 2002 10/04 18:34
nsymさん、ありがとうございます。
早速、試して見たところ、forkで引っかかることなく
コンパイルすることができました。

ソースに
extern void mainCRTStartup(void);
extern void WinMainCRTStartup(void) { mainCRTStartup(); }
を含めて
 gcc -mwindows file.c
でOKでした。

ありがとうございました。
スレッド一覧

早田のホームページへ
CGIROOM