2016-05-02 4 views
0

sampleSource code (включая Makefile)Ошибка при создании расширения рубинового C

Я делаю тест на приведенном выше примере, Но когда я компилирую его получил ошибку! Я сделал это неправильно?

H:\Ruby\test_ymal\MyTest>make 
compiling MyTest.c 
In file included from d:/RailsInstaller/Ruby2.2.0/include/ruby-2.2.0/ruby/define 
       from d:/RailsInstaller/Ruby2.2.0/include/ruby-2.2.0/ruby/ruby.h 
       from d:/RailsInstaller/Ruby2.2.0/include/ruby-2.2.0/ruby.h:33, 
       from MyTest.c:2: 
d:/RailsInstaller/Ruby2.2.0/include/ruby-2.2.0/ruby/win32.h:319:44: warning: 'st 
extern int clock_gettime(clockid_t, struct timespec *); 
              ^
d:/RailsInstaller/Ruby2.2.0/include/ruby-2.2.0/ruby/win32.h:320:43: warning: 'st 
extern int clock_getres(clockid_t, struct timespec *); 
             ^
linking shared-object mytest.so 
process_begin: CreateProcess(NULL, rm -f mytest.so, ...) failed. 
make (e=2): 
Makefile:253: recipe for target 'mytest.so' failed 
make: [mytest.so] Error 2 (ignored) 
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: mytest-i38 
mytest-i386-mingw32.def: file not recognized: File truncated 
collect2.exe: error: ld returned 1 exit status 
Makefile:253: recipe for target 'mytest.so' failed 
make: *** [mytest.so] Error 1 

---- добавить на 2016/05/03 ----------------------

H:\Ruby\test_ymal\MyTest>make 
generating mytest-i386-mingw32.def 
compiling MyTest.c 
linking shared-object mytest.so 
process_begin: CreateProcess(NULL, rm -f mytest.so, ...) failed. 
make (e=2): 
Makefile:271: recipe for target 'mytest.so' failed 
make: [mytest.so] Error 2 (ignored) 

Но (файл mytest.so), проверенный в рубине, в порядке.
как решить эту ошибку?
process_begin: CreateProcess (NULL, гт -f mytest.so, ...) не

irb(main):003:0> require 'H:\Ruby\test_ymal\MyTest\mytest.so' 
=> true 
irb(main):004:0> include MyTest 
=> Object 
irb(main):005:0> puts test1 
10 
=> nil 
irb(main):006:0> exit 
+0

, пожалуйста, поделитесь фактическим источником и созданным Makefile. Это похоже на проблему с makefile или toolchain, который вы используете – Mircea

+0

@Mircea благодарит за комментарий. Я добавляю свой тестовый исходный код только сейчас (включая makefile) .thanks для помощи – nainaigu

+0

@Mircea i исправлены те же ошибки в make-файле. но одна ошибка все еще существует. Ты поможешь мне? – nainaigu

ответ

0

я найти ответ. В make-файле добавлен процесс rm -rf mytest.so. просто переместите это.