のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

"torch"を"windows 10"の "visual studio 2017"でビルドしてみる(その4)

C:\torch\install>.\luarocks download luaffi

C:\torch\install>git clone git://github.com/facebook/luaffifb.git
Cloning into 'luaffifb'...
remote: Enumerating objects: 963, done.
remote: Total 963 (delta 0), reused 0 (delta 0), pack-reused 963R
Receiving objects: 100% (963/963), 452.84 KiB | 454.00 KiB/s, done.
Resolving deltas: 100% (684/684), done.

C:\torch\install>cd luaffifb
C:\torch\install\luaffifb>luarocks make ..\luaffi-scm-1.rockspec
cl /nologo /MD /O2 -c -Focall.obj -IC:/torch/install/include call.c -Idynasm
call.c
c:\torch\install\luaffifb\ffi.h(363): error C2061: 構文エラー: 識別子 'complex_double'
c:\torch\install\luaffifb\ffi.h(363): error C2059: 構文エラー: ';'
c:\torch\install\luaffifb\ffi.h(364): error C2061: 構文エラー: 識別子 'complex_float'
c:\torch\install\luaffifb\ffi.h(364): error C2059: 構文エラー: ';'
c:\torch\install\luaffifb\ffi.h(365): error C2061: 構文エラー: 識別子 'mk_complex_double'
c:\torch\install\luaffifb\ffi.h(365): error C2059: 構文エラー: ';'
c:\torch\install\luaffifb\ffi.h(365): error C2059: 構文エラー: '<parameter-list>'
c:\torch\install\luaffifb\ffi.h(366): error C2059: 構文エラー: 'サフィックスが無効です。'
c:\torch\install\luaffifb\ffi.h(368): error C2061: 構文エラー: 識別子 'mk_complex_float'
c:\torch\install\luaffifb\ffi.h(368): error C2059: 構文エラー: ';'
c:\torch\install\luaffifb\ffi.h(368): error C2059: 構文エラー: '<parameter-list>'
c:\torch\install\luaffifb\ffi.h(369): error C2059: 構文エラー: 'サフィックスが無効です。'
c:\torch\install\luaffifb\ffi.h(444): error C2061: 構文エラー: 識別子 'check_complex_double'
c:\torch\install\luaffifb\ffi.h(444): error C2059: 構文エラー: ';'
c:\torch\install\luaffifb\ffi.h(444): error C2059: 構文エラー: '<parameter-list>'
c:\torch\install\luaffifb\ffi.h(445): error C2061: 構文エラー: 識別子 'check_complex_float'
c:\torch\install\luaffifb\ffi.h(445): error C2059: 構文エラー: ';'
c:\torch\install\luaffifb\ffi.h(445): error C2059: 構文エラー: '<parameter-list>'
call.c(163): error C2065: 'check_complex_double': 定義されていない識別子です。
call.c(164): error C2065: 'check_complex_float': 定義されていない識別子です。

Error: Build error: Failed compiling object call.obj

ffi.hを以下のように変更
#ifdef _WIN32
#include
#else
#include
#include
#include
#include
#include
#define HAVE_COMPLEX
#endif

C:\torch\install\luaffifb>luarocks make ..\luaffi-scm-1.rockspec
cl /nologo /MD /O2 -c -Focall.obj -IC:/torch/install/include call.c -Idynasm
call.c
cl /nologo /MD /O2 -c -Foctype.obj -IC:/torch/install/include ctype.c -Idynasm
ctype.c
cl /nologo /MD /O2 -c -Foffi.obj -IC:/torch/install/include ffi.c -Idynasm
ffi.c
cl /nologo /MD /O2 -c -Foparser.obj -IC:/torch/install/include parser.c -Idynasm
parser.c
link -dll -def:ffi.def -out:ffi.dll C:/torch/install/./libluajit.lib call.obj ctype.obj ffi.obj parser.obj
Microsoft (R) Incremental Linker Version 14.15.26730.0
Copyright (C) Microsoft Corporation.  All rights reserved.

   ライブラリ ffi.lib とオブジェクト ffi.exp を作成中
Updating manifest for C:/torch/install/luarocks
luaffi scm-1 is now built and installed in C:/torch/install/ (license: BSD)