Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
28
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

Mac で ruby-1.9.3-p385 がビルドできない問題を素早く解決する

Mountain Lion あたりだと ruby-1.9.3-p385 のビルド時に以下のようなエラーが出る:

BUILD FAILED
(略)
Last 10 log lines:
compiling regenc.c
compiling regerror.c
compiling regexec.c
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

整数の精度を落とすような暗黙的型変換の警告(-Wshorten-64-to-32)と、警告をエラーにするオプション(-Werror)によってビルドが失敗している。

これを解決するには brew install apple-gcc42 して CC=/usr/local/bin/gcc-4.2 すればいいという情報が色々見つかるが、そんなことをしなくても警告を無視するだけでビルドは通る:

export CFLAGS=-Wno-error=shorten-64-to-32
# プリインストールの readline と OpenSSL は壊れているため、別途 Homebrew などでインストールしたものを使う
export CONFIGURE_OPTS="--with-openssl-dir=/path/to/dir --with-readline-dir=/path/to/dir"

rvm install ruby-1.9.3-p385
# or
rbenv install 1.9.3-p385

apple-gcc42 を使えば出ないはずの警告を無視することについて不安があるかもしれないが、 apple-gcc42 は警告のチェックが甘いだけである。

補足:homebrew で入れた openssl を使って Ruby をコンパイルすると SSL 利用時に証明書エラーが発生する場合の対応

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
28
Help us understand the problem. What are the problem?