2016-05-02 8 views
0

sampleSource code (einschließlich Make-Datei)Fehler beim Erstellen einer Ruby-Erweiterung in C

ich einen Test für die Probe machen oben, Aber wenn ich es erhielt Fehler kompilieren! Habe ich es falsch gemacht?

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 

---- von 2016.05.03 hinzufügen ----------------------

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) 

aber die (mytest.so) Datei in Ruby getestet ist in Ordnung.
Wie löst man diesen Fehler?
process_begin: Createprocess (NULL, rm -f mytest.so, ...) ist fehlgeschlagen

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

teilen Sie bitte die tatsächliche Quelle und das Makefile, das erstellt wurde. Das sieht aus wie ein Problem mit dem Makefile oder der Toolchain, die Sie verwenden – Mircea

+0

@Mircea danke für den Kommentar. Ich füge gerade meinen Testquellcode hinzu (include makefile) .thanks for help – nainaigu

+0

@Mircea Ich habe dieselben Bugs in Makefile behoben. aber ein Fehler existiert noch. Kannst du mir helfen? – nainaigu

Antwort

0

ich die Antwort finden. rm -rf mytest.so-Prozess wird in Makefile hinzugefügt. verschieben Sie das einfach.

Verwandte Themen