设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2558|回复: 13
打印 上一主题 下一主题

[有事请教] ruby的C扩展编译过程卡了几天,求解

[复制链接]

Lv2.观梦者

梦石
0
星屑
707
在线时间
69 小时
注册时间
2012-5-24
帖子
37
跳转到指定楼层
1
发表于 2016-6-7 20:07:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
首先请多包涵,这个问题去ruby社区问大概不够高端,但是对于非专业的我已经很难再解决下去了。
目前是xp系统,还没用win7试更多版本。几天当中我已经试过了mingw3.1与vc++6,ruby2.0.0与1.8.6。
使用vc++的nmake途径的话,1.8.6生成的makefile弄起来没有报错,但是只会生成到.exp与.lib两个文件,没有出现dll;2.0.0则会报U1000错误。
直接使用vc++自造dll的话,头文件的情况似乎很纠结,采用ruby1.8.6的i386文件夹下的ruby.h不会报任何缺失,但方法调用都会报LNK2001错误,仿佛不该用这个文件,而我用ruby-1.8.6那个文件夹下的ruby.h的话头文件有很多缺失,并且某些头文件似乎不是正常存在的。mingw3.1在处理makefile的时候也会报错,时间稍长我记不清内容了。

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2016-6-7 20:29:15 | 只看该作者
本帖最后由 taroxd 于 2016-6-7 20:30 编辑

建议去 ruby 社区问吧。这里应该没多少人有能力解决你的问题

1. 你用的 ruby 版本是?编译扩展要用编译 ruby 时用的那个编译器。如果是 rubyinstaller 安装的,请安装配套的 devkit,里面有 mingw。
2. 编译出来的结果应该是 so 而不是 dll
3. 尽量不要使用 XP 系统
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

3
发表于 2016-6-8 04:08:47 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5463
在线时间
2562 小时
注册时间
2011-9-27
帖子
1120

极短23参与开拓者

4
发表于 2016-6-8 06:49:26 | 只看该作者
我什么也听不懂,就听说ruby在windows下各种不灵光。  好像xp下到2.1版本就没法安装运行了似的。
从平淡走向更平淡。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

5
发表于 2016-6-8 07:27:53 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5463
在线时间
2562 小时
注册时间
2011-9-27
帖子
1120

极短23参与开拓者

6
发表于 2016-6-8 11:54:37 | 只看该作者
请问 “无法定位程序输入点 _gmtime64_s 于动态链接库  msvcrt.dll 上"是什么意思?
我安装新版ruby就是遇到这个毛病。

点评

缺少VC运行库  发表于 2016-6-8 12:11
从平淡走向更平淡。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
707
在线时间
69 小时
注册时间
2012-5-24
帖子
37
7
 楼主| 发表于 2016-6-10 11:21:03 | 只看该作者
taroxd 发表于 2016-6-7 20:29
建议去 ruby 社区问吧。这里应该没多少人有能力解决你的问题

1. 你用的 ruby 版本是?编译扩展要用编译 ru ...

是的,编译出了so。我看到不止一处说windows下干这个应当出现dll,另一方面我听说so是linux下使用的,请问需要什么后续步骤吗
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
707
在线时间
69 小时
注册时间
2012-5-24
帖子
37
8
 楼主| 发表于 2016-6-10 11:24:52 | 只看该作者
晴兰 发表于 2016-6-8 04:08
事实上要生成C扩展不止是extconf/mkmf一种办法,(而且我也没用过这种)

敢问还有哪种方法?我也提到了用vc自制dll的头文件问题,不会用这个方法。

评分

参与人数 1星屑 -3 收起 理由
三途亚梦 -3 请注意不要连贴哦

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

9
发表于 2016-6-10 11:27:42 | 只看该作者
dieforlife 发表于 2016-6-10 11:21
是的,编译出了so。我看到不止一处说windows下干这个应当出现dll,另一方面我听说so是linux下使用的,请 ...

windows 可以使用 so 库。编译出 xxx.so 的话,就直接 require 'xxx' 就好了

点评

多谢,没问题了。之前试过require那个so,或许犯了什么文明用语的错误。  发表于 2016-6-10 14:00
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

10
发表于 2016-6-10 18:26:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-10-1 05:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表