Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

CSS

John Adams
John Adams
14,468 Points

Another Compass install error

Here's the whole error. I am running OSX 10.9.1 and have installed xcode through terminal. I also updated Ruby. I've been trying everything but am about to give up on Compass if installing is this much of a hassle. This is the first time I've used the terminal so I don't know why it wouldn't be working. Sorry the formatting on this got kind of messed up:

$ sudo gem install compass
Building native extensions.  This could take a while...
ERROR:  Error installing compass:
    ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -r ./siteconf20141002-5573-1kq3o00.rb extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... yes
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling AbstractMemory.c
compiling ArrayType.c
compiling Buffer.c
compiling Call.c
Call.c:303:5: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
    rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
    ^
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region'
# define rbffi_thread_blocking_region rb_thread_call_without_gvl
                                      ^
1 warning generated.
compiling ClosurePool.c
compiling DataConverter.c
DataConverter.c:43:1: warning: control may reach end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling DynamicLibrary.c
compiling ffi.c
compiling Function.c
Function.c:563:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
        rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
        ^
1 warning generated.
compiling FunctionInfo.c
compiling LastError.c
compiling LongDouble.c
compiling MappedType.c
compiling MemoryPointer.c
compiling MethodHandle.c
compiling Platform.c
compiling Pointer.c
compiling Struct.c
compiling StructByReference.c
compiling StructByValue.c
compiling StructLayout.c
compiling Thread.c
compiling Type.c
compiling Types.c
compiling Variadic.c
linking shared-object ffi_c.bundle
clang: error: unknown argument: '-multiply_definedsuppress'
make: *** [ffi_c.bundle] Error 1

make failed, exit code 2

1 Answer

Tim Knight
Tim Knight
28,888 Points

John it looks to me like it's trying to compile a few libraries but it's not able to. Do you have Xcode installed? If not, it's a good idea to start there (and it's free on the Mac AppStore), Xcode has all of the compilation tools you'll need for working with Ruby and Ruby extensions. With that installed open up terminal and install the xcode command line tools with xcode-select --install. It seems like a pain if you're just using Compass, but it's really about compiling Ruby gems and extensions. I hope that helps.

Try to stick out the small frustrations. Sass and Compass will greatly improve the way you work with CSS and the initial investment is worth it.

John Adams
John Adams
14,468 Points

That seems to have done the trick. I'd installed Xcode from terminal but I needed to download it from the app store as well, then install Compass.