Getting error for libxml2.2.dylib “file is not of

2019-06-27 05:51发布

问题:

I'm trying to use rvm to install Ruby 1.9.2 on my Mac running Snow Leopard.

My .bash_profile contains

ARCHFLAGS="-arch x86_64"

To install ruby, I run:

rvm install 1.9.2 -C --enable-shared

I get an error during compiling. Here is the make.error.log:

[2010-01-20 10:03:00] make 
ld: in /usr/local/lib/libxml2.2.dylib, file is not of required architecture
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i386-darwin10.2.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1

EDIT:

I installed readline from source and tried the install like this:

rvm install 1.9.2 -C --enable-shared,--with-readline-dir=/usr/local 

which resulted in the same error as before.

The locations of the rcltklib.bundle file is:

/usr/local/lib/ruby/1.8/i686-darwin9.7.0/tcltklib.bundle  

(I think this file is part of the Ruby OSX installation)

回答1:

Now, finally I figured it out.
I did install ruby 1.8.7 from rubyosx and there seemed to be some broken libraries, which rvm used to compile its rubies.

The solution is to remove the rubyosx ruby from /usr/local.

The less drastic solution is to just rename the /usr/local folder during compiling with rvm. Afterwards you can name it back and it works as expected.

Glad it works now.



回答2:

You are setting ARCHFLAGS to two different architectures. Why? Try with only -arch -x86_64 (which as far as I know, is the default in snow leopard).