2013-11-26 3 views
1

Я пытаюсь скомпилировать ruby ​​2.0.0-p535 с помощью компилятора cygwin. У меня установлен и запущен cygwin. Я собрал cygdrive/c/Source/ruby-2.0.0-p353. При попытке скомпилировать файл с помощью функции make я получаю эту ошибку.cygwin компилятор для компиляции ruby ​​file.c error

compiling load.c 
compiling proc.c 
compiling file.c 
file.c:4184:47: error: conflicting types for ‘GetLastError’ 
extern unsigned long __attribute__((stdcall)) GetLastError(void); 
             ^
In file included from /usr/include/w32api/winbase.h:16:0, 
      from /usr/include/w32api/windows.h:70, 
      from file.c:18: 
/usr/include/w32api/errhandlingapi.h:45:27: note: previous declaration of ‘GetLastError’ was here 
WINBASEAPI DWORD WINAPI GetLastError (VOID); 
        ^
Makefile:328: recipe for target 'file.o' failed 
make: *** [file.o] Error 1 

Любая помощь действительно оценена. Дайте мне знать, если какая-либо другая информация будет полезна.

ответ

1

Перейти к каталогу /tmp/ruby-build.2013xxxx/ruby-your version /. Вы можете найти исходный код Измените следующие:

--- /tmp/file.c 2014-05-13 15: 46: 16.129925200 +0900 
+++ File.c 2014-05-13 15: 46: 56.862548100 +0900 
@ @ @ @ -4126,7 Tasu4126,7 

#ifdef __CYGWIN__ 
#include <winerror.h> 
- extern unsigned long __attribute __ ((stdcall)) GetLastError (void); 
+ extern unsigned int __attribute __ ((stdcall)) GetLastError (void); 
#endif 

static VALUE 

затем запустить:

make install 

работал для меня.

Смежные вопросы