1

2 台の異なる OSX 10.8.2 マシンに Ruby/Gem/Rails をインストールしました。1 つは正常に動作し、もう 1 つは pg のようなネイティブ コードを含む gem をインストールしようとするまで動作しているように見えます。私がする時

gem install pg -v 0.12.2 

「PostgeSQL クライアント ライブラリ (libpq) が見つかりません」で失敗します。

mkmf.log を見ると、次のように表示されます。

have_library: checking for PQconnectdb() in -lpq... -------------------- no "gcc-4.2 -o conftest -I/Users/brian/.rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/i386-darwin12.2.0 -I/Users/brian/.rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1/ruby/backward -I/Users/brian/.rvm/rubies/ruby-1.9.3-p286/include/ruby-1.9.1 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/usr/include -I/Users/brian/.rvm/usr/include -fno-common -pipe conftest.c -L. -L/Users/brian/.rvm/rubies/ruby-1.9.3-p286/lib -L. -L/Users/brian/.rvm/usr/lib -L/usr/local/lib -L/usr/lib -lruby.1.9.1 -lpq -lpthread -ldl -lobjc " ld: warning: ignoring file /usr/local/lib/libpq.dylib, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): /usr/local/lib/libpq.dylib Undefined symbols for architecture i386: "_PQconnectdb", referenced from: _t in ccLXteQk.o

これは、無視されているライブラリが(私が望むように)64ビットライブラリであるために発生していると思いますが、私のルビーインストールは(何らかの理由で)32ビットです。証拠として、私が見る動作するマシンで

~/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/x86_64-darwin12.2.0/ruby/config.h

失敗した方に

~/.rvm/rubies/ruby-1.9.3-p194/include/ruby-1.9.1/i386-darwin12.2.0/ruby/config.h

長い説明で申し訳ありません。アーキテクチャを設定するために多くのことを試しました

rvm install 1.9.3

これらのディレクトリを作成しています。私の努力のどれも、「悪い」マシンに、望ましい64ビットバイナリに合わせてインクルードディレクトリを生成させることはありませんでした。私はこれらのビルドのどちらにも意図的にアーキテクチャを設定していなかったので、この時点で、「悪い」マシンの環境で、Ruby インストールが 32 ビット バイナリをビルドする必要があると判断する原因となっていることに当惑しています。何か案は?

4

1 に答える 1

0

私が信じているアーチフラグを渡すことができます。お気に入りgem install pg -- --arch-flags='i386'

または pg がアーチフラグとして受け入れるもの。アーチタイプを定義するために渡すことができるフラグでもある必要があります(それを見つけさせます)

あなたも言うことができますgem install pg -- --with-pg-include=/path/to/pg/include --with-pg-dir=/path/to/pg_config

于 2012-10-15T23:20:54.137 に答える