--prefix=$HOME/.rbenv/versions/2.0.0-p247でいつでも楽に消せる様にrbenvで管理してます。
ruby 2.0.0p247をcygwin64でmakeしたところ
compiling file.c
file.c:4184:47: エラー: ‘GetLastError’ と型が競合しています
extern unsigned long __attribute__((stdcall)) GetLastError(void);
^
In file included from /usr/include/w32api/windows.h:70:0,
from file.c:18:
/usr/include/w32api/winbase.h:1363:27: 備考: 前の ‘GetLastError’ の宣言はここです
WINBASEAPI DWORD WINAPI GetLastError(VOID);
file.c:4184:47: エラー: ‘GetLastError’ と型が競合しています
extern unsigned long __attribute__((stdcall)) GetLastError(void);
^
In file included from /usr/include/w32api/windows.h:70:0,
from file.c:18:
/usr/include/w32api/winbase.h:1363:27: 備考: 前の ‘GetLastError’ の宣言はここです
WINBASEAPI DWORD WINAPI GetLastError(VOID);
あー。longかー。
調べてみるとcygwin64bitのgccはsizeof(long) => 8らしい。DWORDは確か4byteだったから多分このせいでエラーが出る。
最初はcygwin上のmingwでmake && make installしようとしたけどよくわからなかったので力技を使う。
file.cを開き、エラー箇所のlongのところをintに変えてmakeしてみた。
file.c:4184:46: 警告: ‘GetLastError’ は dllimport 属性無しで再宣言されました: 前の dllimport は無視されます [-Wattributes]
extern unsigned int __attribute__((stdcall)) GetLastError(void);
extern unsigned int __attribute__((stdcall)) GetLastError(void);
こんな警告がでた。が、通った。
win32oreあたりもなんか警告がすごかった気がする。
そしてそのままmake installしてrubyを確認。
$ ruby -v
ruby 2.0.0p247 (2013-06-27) [x86_64-cygwin]
ここまでやったけどcygwinはしばらく32bitでいい気がしてきた。
0 件のコメント:
コメントを投稿