1

clangを使用してRuby1.9.3をインストールしようとしています。次のことを試しましたが、機能しませんでした。

rvm install 1.9.3-p125 --with-gcc=clang

rvm install 1.9.3 --with-gcc=clang --with-readline-dir=$rvm_path/usr

私が得るエラーは、makeログのreadline関連のエラーです。

readline.c:1499:9: error: use of undeclared identifier 'username_completion_function'; did you mean 'rl_username_completion_function'?
                                    rl_username_completion_function);
                                    ^
readline.c:69:42: note: expanded from macro 'rl_username_completion_function'
# define rl_username_completion_function username_completion_function
                                         ^
/usr/local/include/readline/readline.h:443:14: note: 'rl_username_completion_function' declared here
extern char *rl_username_completion_function PARAMS((const char *, int));
             ^
1 error generated.
make[2]: *** [readline.o] Error 1
make[1]: *** [ext/readline/all] Error 2
make: *** [build-ext] Error 2

また、最初の試行でのこのclangエラー:(rvm install 1.9.3-p125 --with-gcc = clang)

clang: error: unsupported option '--with-libyaml'
clang: error: unsupported option '--with-libyaml'

2回目の試行の場合:(rvm install 1.9.3 --with-gcc = clang --with-readline-dir = $ rvm_path / usr)

clang: error: unsupported option '--with-readline'
clang: error: unsupported option '--with-opt-dir=/Users/andrewjl/.rvm/usr'
clang: error: unsupported option '--with-readline'
clang: error: unsupported option '--with-opt-dir=/Users/andrewjl/.rvm/usr'

私がここで学んだことを考えると、clangは特定のgccや特定のreadlineディレクトリを使用するためのコマンドライン引数を認識していないと思います。

私のRVMは次のとおりです。rvm 1.14.3 (master)

私のClangは:

Apple clang version 3.1 (tags/Apple/clang-318.0.61) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin11.4.0
Thread model: posix

これが私のGCCです:

andrewjl$ /usr/bin/gcc -v
Using built-in specs.
Target: i686-apple-darwin11
Configured with: /private/var/tmp/llvmgcc42/llvmgcc42-2336.9~22/src/configure --disable-checking --enable-werror --prefix=/Applications/Xcode.app/Contents/Developer/usr/llvm-gcc-4.2 --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-prefix=llvm- --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin11 --enable-llvm=/private/var/tmp/llvmgcc42/llvmgcc42-2336.9~22/dst-llvmCore/Developer/usr/local --program-prefix=i686-apple-darwin11- --host=x86_64-apple-darwin11 --target=i686-apple-darwin11 --with-gxx-include-dir=/usr/include/c++/4.2.1
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)

ここでこの方法を試しましたが、うまくいきませんでした。具体的には、コマンドラインツールを使用してXcode 4.1をインストールし、opensslとreadlineが更新されていることを確認しました。誰かが私が試すことができる他の何かを知っていますか?

4

2 に答える 2

2

「GCC」はまだLLVMベースです。ruby-1.9.3-p125をインストールする場合、RVMが自動的に認識するため、-with-gcc = clangを設定する必要はなく、おそらくまったく設定しないでください。

そのオプションなしでそのルビーをインストールしようとしましたか?それでも問題が解決しない場合は、インストールしたXcodeの正確なバージョンを教えてください。そこから続行できます。gccバージョン4.2.1は、4.2.xから4.5DP2までのどこでもかまいません。Freenode IRC(http://webchat.freenode.net/?channels=rvm)の#rvmに立ち寄ることを検討してください。I(Remear)またはmpapisがさらに役立ちます。

いくつかの明確な情報:

約4.1までのすべてのXcodeバージョンには、標準のGCCベースのコンパイラが付属しています。Xcode 4.2.x以降、AppleはLLVMベースのコンパイラを導入し、GCCベースのコンパイラを段階的に廃止し始めました。Xcode 4.3にはLLVMコンパイラのみが付属しており、GCCは付属していません。Ruby 1.8.xでは、コンパイルにGCCが必要です。Ruby 1.9.3-p0はLLVMをわずかにサポートしていましたが、幸運にもインストールできました。Ruby 1.9.3-p125以降では、LLVMコンパイラとの互換性が向上しています。

したがって、ほとんどすべてのルビーをインストールするために必要なものの内訳は次のとおりです。

Ruby 1.8.x、Ruby 1.9.3-p0

Xcode4.1またはosx-gcc-installer

Ruby1.9.3-p125以降

Xcode4.1またはosx-gcc-installer

また

XcodeコマンドラインツールがインストールされたXcode4.2.x以降(これにより、LLVMに加えてGCCが返されます)

于 2012-06-28T19:07:22.040 に答える
1

RVMがコマンドラインで何かを変更したようです。次の(変更された)形式が機能します。

rvm pkg install readline

に続く:

rvm install 1.9.3 -C "--with-readline-dir=$HOME/.rvm/usr"
于 2012-06-29T02:26:01.077 に答える