2016-12-17 14 views
3

luasocket-2.0.2(または:luasocket)をコンパイルしようとしていますが、そうしようとすると一部のマクロが定義されていないようです。すなわち、'SIGPIPE':luasocket-2.0.2で宣言されていない識別子

identifier "SIGPIPE" is undefined 
identifier "F_GETFL" is undefined 
identifier "O_NONBLOCK" is undefined 
identifier "F_SETFL" is undefined 

私はこの場合、signal.hが含まれている必要があります。私はコードや何かを変更しませんでした。期待通りにヘッダーが含まれています:

私はここで何が欠けているのか分かりません。

私はこれをWindows用にコンパイルしようとしています。

コンパイラフラグ:

/GS /analyze- /W3 /Zc:wchar_t /I"E:\git\luasocket-2.0.2\../luaext-linker/include" /ZI /Gm /Od /Fd"mime\Debug\vc140.pdb" /Zc:inline /fp:precise /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_USRDLL" /D "MIME_EXPORTS" /D "MIME_API=__declspec(dllexport)" /D "_WINDLL" /D "_MBCS" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /Oy- /MDd /Fa"mime\Debug\" /EHsc /nologo /Fo"mime\Debug\" /Fp"mime\Debug\mime.pch" 

エラーはソケットプロジェクトのusocket.cに発生します。

"SIGPIPE" is undefined socket e:\git\luasocket-2.0.2\src\usocket.c 80 
... 
+0

あなたの問題の詳細を説明してください。どのようにしてビルドしようとしていますか、コンパイラフラグ、正確なエラーメッセージ、ソースファイル名などを入力してください。 – Sergio

+0

@Sergio要求された情報を追加しました。もっとあれば私にお知らせください。 – displayname

答えて

0

usocket.cはUnix固有のソースです。

/*=========================================================================*\ 
* Socket compatibilization module for Unix 
* LuaSocket toolkit 

(Cygwinを使用していない限り)Win-targetedビルドには含めないでください。また、socket.vcxprojには、このファイルはソースセットには記載されていません。それは以前の提案を確認します。

あなたはwin32.cmdスクリプトを経由して、それを建てに決めた場合 - 接頭語への正しいパス、スクリプトはハードコードされたものを使用するので:

make LUAPREFIX_win32='c:\cygwin\home\diego\vc12' LUAV=5.1 PLAT=win32 LUALIBNAME_win32=lualib.lib PLATFORM_win32=Debug install-both 
0

さて、それはあなたのコンパイルフラグであります。私はここからあなたのシステムを見ることはできませんが、/Iフラグはどこに起こっているのですか?問題はsignal.hがこれらのディレクトリにないことです。

これはおそらく、パッケージ自体に何らかのバグがあります。これを開発者に報告し、その間にsignal.hを見つけて、それを回避策としてインクルードディレクトリの1つにコピーしてください。

+0

要求されたヘッダーの一部が見付からない場合、ビルドされたプロセスはずっと早く停止し、エラーメッセージは、ヘッダーのないヘッダーについて通知し、宣言されていないIDについては通知しません。 – Sergio

関連する問題