不能编译红宝石1.9.3(Cannot compile ruby 1.9.3)

2019-07-18 23:05发布

当我运行

rvm install 1.9.3 --with-gcc=clang

在Mac OSX狮子,Ruby没有编译,我得到以下错误(.rvm /日志/红宝石1.9.3-P374 / make.log里)

[2013-01-29 16:31:05] make
CC = clang
LD = ld
LDSHARED = clang -dynamic -bundle
CFLAGS = -O3 -ggdb -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Werror=pointer-arith -Werror=write-strings -Werror=declaration-after-statement -Werror=shorten-64-to-32 -Werror=implicit-function-declaration  -pipe 
XCFLAGS = -include ruby/config.h -include ruby/missing.h -fvisibility=hidden -DRUBY_EXPORT
CPPFLAGS = -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -I/Users/will/.rvm/usr/include -I. -I.ext/include/x86_64-darwin12.2.1 -I./include -I.
DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -Wl,-flat_namespace  
SOLIBS = 
compiling regparse.c
regparse.c:582:15: error: implicit conversion loses integer precision: 'st_index_t' (aka 'unsigned long') to 'int' [-Werror,-Wshorten-64-to-32]
return t->num_entries;
~~~~~~ ~~~^~~~~~~~~~~
1 error generated.
make: *** [regparse.o] Error 1

我怎样才能得到红宝石1.9.3安装上狮子?

Answer 1:

您正在使用clang ,根据这张票http://bugs.ruby-lang.org/issues/5883 -它不是“完全”支持的-你需要使用尝试gcc-4.2 ,你会得到自制的指令与运行rvm requirements

这里是RVM票这个问题https://github.com/wayneeseguin/rvm/issues/1480

更新:红宝石2.0.0实际上编译更好clang然后用gcc-4.2在这里,更多的细节: https://stackoverflow.com/a/15655034/497756



Answer 2:

和Xcode 4.6,我也得到这个问题。 我装这使得在/ usr / bin中/ GCC海湾合作委员会提供的命令行工具。

我设法用它来工作:

rvm install 1.9.3 --with-gcc=gcc

NB。 我没有自制安装。



Answer 3:

如果你没有RVM已经安装,RVM要求将无法正常工作。 用自制安装gcc 4.2,然后重新启动安装RVM。 为我工作。

brew update
brew tap homebrew/dupes
brew install apple-gcc42


Answer 4:

如果您正在使用rbenv和红宝石打造,而不是RVM,你必须定义,它编译器应该被用来构建红宝石:

# this export must be done before every new ruby build
export CC=gcc
# use the version you wish to install
rbenv install 1.9.3-p385

如果它不能正常工作,您需要首先安装GNU C编译器(GCC):

brew update
brew tap homebrew/dupes
# install gcc, only once needed
brew install gcc
# You can view the installed GCC version, currently gcc-8
brew info gcc
# Maybe you have to tell, which gcc version must be used,
# to get it working.
export CC=gcc-8

对于旧系统或不是最新的系统上安装旧GCC 4.2版:

brew update
brew tap homebrew/dupes
# install apple-gcc, only once needed
brew install apple-gcc42
# Maybe you have to tell, which gcc version must be used,
# to get it working on newer systems
export CC=gcc-4.2

直到红宝石乡亲打造铿锵兼容红宝石版本,您必须将CC变量的新版本的红宝石每构建之前出口或简单地出口添加到您的.bashrc奥德.zshenv文件。



Answer 5:

我解决了这个使用的MacPorts。

我不得不编译问题并得到错误“ 红宝石‘红宝石1.9.3-P374’建用铛-但它不是(完全)的支持,期望的错误。”

Github上也停机维护,所以我想不出尝试使用BREW编译如前面的回答表明...这是我做什么,以及它在山狮10.8.2编译罚款:

首先安装的MacPorts

http://www.macports.org/install.php

然后运行:

sudo的港口自更新

sudo的港口安装苹果gcc42

须藤RVM安装红宝石1.9.3-P374 --with-GCC = GCC-苹果-4.2



文章来源: Cannot compile ruby 1.9.3