由于cygwin现在已经拆分为32位和64位版本,因此我无法找到使用rbenv和ruby-build(la https://github.com/sstephenson/rbenv#installation)安装ruby版本的工作解决方案,这需要gcc来编译原生扩展。
我的机器是Win7 64位,我现在通过setup-x86_64.exe和rbenv的vanilla安装安装了64位cygwin。 gcc选项现在是:
每个子类别都有多个子类别,但根据我的需要,我只选择了相应的核心和g ++选项。我已经通过
依次尝试了export CC=/bin/<gcc-executable>
rbenv install 1.9.3-p0
首先下载并尝试编译yaml。除了最后一个,configure
阶段失败了,例如
checking whether the C compiler works... no
configure: error: in `/tmp/ruby-build.20131206180232.7988/yaml-0.1.4':
configure: error: C compiler cannot create executables
(如果有必要,我可以挖掘这些日志,但我认为这意味着它无法编译此架构的可执行文件。)
最后一个(mingw64-x86_64-gcc)似乎是最有希望的。它完成了configure
阶段,但仍然无法使用下面的日志编译yaml模块(它尝试的第一个模块)。
非常感谢任何帮助。我不认为这是一个rbenv问题,而是我错误配置gcc的症状。
完整登录: http://pastebin.com/WCukkAWu
但是失败的相关部分是:
run-parser.o: In function `main':
/tmp/ruby-build.20131206180255.6208/yaml-0.1.4/tests/run-parser.c:16: undefined reference to `__imp_yaml_parser_parse'
/tmp/ruby-build.20131206180255.6208/yaml-0.1.4/tests/run-parser.c:49: undefined reference to `__imp_yaml_event_delete'
/tmp/ruby-build.20131206180255.6208/yaml-0.1.4/tests/run-parser.c:36: undefined reference to `__imp_yaml_parser_initialize'
/tmp/ruby-build.20131206180255.6208/yaml-0.1.4/tests/run-parser.c:38: undefined reference to `__imp_yaml_parser_set_input_file'
/tmp/ruby-build.20131206180255.6208/yaml-0.1.4/tests/run-parser.c:54: undefined reference to `__imp_yaml_parser_delete'
collect2: error: ld returned 1 exit status
Makefile:320: recipe for target 'run-parser.exe' failed