Cygwin 下 Io 插件的问题
有没有人设法在 Windows 7 32 位
Cygwin
下使用 Io
插件,例如 Regex
或 OpenGL
/代码>?
注意:
- 如果碰巧是
ASLR
问题,我想保持ASLR
启用,所以我没有在关闭它的情况下进行测试。 - 我的
Cygwin
是较新的,但不一定是前沿的 (gcc (GCC) 4.3.4 20090804 (release) 1
)
完整的故事:
在我这边,我需要一些调整以在 Cygwin
下编译和运行 Io
。要查看我的构建过程、小补丁和最终调整以使 DLL 可用于 Cygwin
,请参阅 http ://permalink.de/tino/iocyg
我的操作系统是 Windows 7 starter 32 位
,因此启用了 ASLR
。这里是关于 Cygwin
下的构建,而不是 MinGW
,因为在 MinGW
下,Regex
插件无论如何都不会编译,因为默认情况下缺少 pcre
lib。
在 Cygwin 下,由于以下错误,我还没有设法使用一些插件,例如 Regex
或 OpenGL
(请注意,Cygwin
会查找 DLL
在搜索PATH
中,所以我必须向其中添加lib,因此是env
):
$ env PATH="$PATH:/usr/local/lib" io
Io 20090105
Io> Regex
==> Regex_0xcd1788:
[output skipped]
Io> "e" matchesRegex("." asRegex)
IoState error: missing proto 0x52128c
IoState_protoWithInitFunction() Error: missing proto
谷歌搜索此错误我发现了一些与事实相关的帖子,Io
使用函数指针作为哈希来设置proto
。该地址可能会在 DLL
情况下发生变化,从而导致散列中断。然而,查看 iovm/source/IoState.c 的代码,我无法理解这是否真的是问题的根源(还)。
更深入地说:
Io> "a" matchesOfRegex("o") anchored
==> nil
Io> "a" matchesOfRegex(".") anchored
IoState error: missing proto 0x1983128c
IoState_protoWithInitFunction() Error: missing proto
这可以追溯到 Regex/source/IoRegexMatches.c
函数 IoRegexMatches_searchFrom_withOptions_
中使用 Range
插件。我现在被困在这里。
Has anybody managed to use Io
addons like Regex
or OpenGL
under Cygwin
on Windows 7 32 bit
?
Notes:
- If it happen to be an
ASLR
issue, I want to keepASLR
enabled, so I did not test with it turned off. - My
Cygwin
is a newer one, but not neccessarily bleading edge (gcc (GCC) 4.3.4 20090804 (release) 1
)
The full story:
At my side I need some tweaks to compile and run Io
under Cygwin
. To see my build process, minor patches and final tweaks to make the DLLs available to Cygwin
see http://permalink.de/tino/iocyg
My OS is Windows 7 starter 32 bit
, so ASLR
is enabled. This here is about builds under Cygwin
, not MinGW
, as under MinGW
the Regex
addon does not compile anyway due to missing pcre
lib by default.
Under Cygwin I did not manage to use some Addons like Regex
or OpenGL
yet because of following error (note that Cygwin
looks for DLL
s in the search PATH
, so I must add the lib to it, hence the env
):
$ env PATH="$PATH:/usr/local/lib" io
Io 20090105
Io> Regex
==> Regex_0xcd1788:
[output skipped]
Io> "e" matchesRegex("." asRegex)
IoState error: missing proto 0x52128c
IoState_protoWithInitFunction() Error: missing proto
Googling for this error I found some posts relating to the fact, that Io
uses the function pointer as hash to set the proto
. This address might change in a DLL
situation so the hash breaks. However looking into the code of iovm/source/IoState.c
I am not able to understand if this really is the source of the problem or not (yet).
Going deeper into this:
Io> "a" matchesOfRegex("o") anchored
==> nil
Io> "a" matchesOfRegex(".") anchored
IoState error: missing proto 0x1983128c
IoState_protoWithInitFunction() Error: missing proto
This can be tracked down to the use of Range
addon in function IoRegexMatches_searchFrom_withOptions_
from Regex/source/IoRegexMatches.c
. And here I am currently stuck.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,在我安装 pcre 之前,Regex 给我带来了问题。
修复:
Yes, Regex gave me problems until I installed pcre.
Fix: