编译c语言程序扩展ruby

简介: 环境: windows 10 64bit ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32] gcc version 4.8.

 

环境:
windows 10 64bit
ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
gcc version 4.8.1 (GCC)
 
minGw的配置:
 
//家目录
 
//C头文件目录
 
 

//C++头文件目录

CPLUS_INCLUDE_PATH=%MINGW_PATH%/include/c++/4.8.1;%MINGW_PATH%/include/c++/4.8.1/mingw32;%MINGW_PATH%/include/c++/4.8.1/backward

由于本次测试是用c语言写的扩展 所以不需要配置c++

 
//可执行程序目录
Path中:
 
注意mingw的bin下面不叫make 而叫  mingw32-make 。需要自己动手改一下
 
正常情况下ruby生成的makefile
直接make会报各种异常
 
奶奶的发了好几天没人理我,无奈只有自己研究了。
 
异常的原因是:makefile的部分路径地址不对
需要自己手动修改
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
 externint clock_getres(clockid_t,struct timespec *);
这种错是因为
D:\RailsInstaller\Ruby2.2.0\include\ruby-2.2.0\ruby\ win32.h 的  timespec 没有事先定义 在第225行加入  struct timespec; 就可以了
 
process_begin:CreateProcess(NULL, rm -f mytest.so,...) failed.
make (e=2):Makefile:271: recipe for target 'mytest.so' fail
这个错是因为 makefile 里面多加了一个 process 来删除so文件。这里我将它去掉就正常了 (make -d 可以观察到哪一步出错)
 
ok!。接下来测试在ruby中是否能调用成功呢?
 
到此在windows环境下完美搞定!
 
MyTest.rar

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,转载文章之后须在文章页面明显位置给出作者和原文连接,谢谢。
目录
相关文章
|
9天前
|
前端开发 C语言 C++
C语言03----第一个程序HelloWorld(vs版)
C语言03----第一个程序HelloWorld(vs版)
|
15天前
|
编译器 C语言
C语言编译详解:GCC分步编译与一次编译多个文件
C语言编译详解:GCC分步编译与一次编译多个文件
29 2
|
15天前
|
Unix 编译器 C语言
C语言中的条件编译:探索编译时的决策
C语言中的条件编译:探索编译时的决策
8 1
|
9天前
|
移动开发 C语言
C语言13-----输出常量的两个小扩展
C语言13-----输出常量的两个小扩展
|
9天前
|
前端开发 C语言
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
|
15天前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
15天前
|
程序员 编译器 C语言
详解C语言入门程序:HelloWorld.c
详解C语言入门程序:HelloWorld.c
11 0
|
16天前
|
机器学习/深度学习 C语言 Windows
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
12 0
|
18天前
|
存储 自然语言处理 编译器
【C语言】:编译与链接
【C语言】:编译与链接
13 0
|
18天前
|
程序员 C语言 C++
【C语言】:柔性数组和C/C++中程序内存区域划分
【C语言】:柔性数组和C/C++中程序内存区域划分
13 0