2012-09-04 32 views
31

Cố gắng để cài đặt một viên ngọc trên Mountain Lion và làm cho không thể tìm thấy gcc-4.2:OS X Mountain Lion: gcc-4.2 Không có tập tin hoặc thư mục

kamil$ gem install posix-spawn -v '0.3.6' 
Building native extensions. This could take a while... 
ERROR: Error installing posix-spawn: 
    ERROR: Failed to build gem native extension. 

     /Users/kamil/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb 
creating Makefile 

make 
compiling posix-spawn.c 
make: gcc-4.2: No such file or directory 
make: *** [posix-spawn.o] Error 1 

Trả lời

89

Nếu bạn có Xcode cài đặt, gcc nên có sẵn. Kiểm tra nó ở đâu với:

kamil$ which gcc 
/usr/bin/gcc 

Sau đó làm cho một người sử dụng đất liên kết tượng trưng từ gcc-4.2 để gcc đồng bằng:

kamil$ sudo ln -s ~/bin/gcc /usr/bin/gcc-4.2 

(Đảm bảo thư mục bind với người sử dụng đất là trong con đường của bạn qua export PATH=...:$HOME/bin trong số .bash_profile hoặc .zshrc.)

Đá quý được cài đặt tốt sau đó.

+2

Điều này giải thích lý do tại sao cài đặt này không được đặt theo mặc định khi bạn cài đặt Công cụ dòng lệnh. Tôi đã dành rất nhiều thời gian cố gắng để có được công việc này và cuối cùng đã đi qua câu trả lời của bạn. Đây có phải là vấn đề về Ruby hay vấn đề Xcode khi các hoạt động này không thành công ngay cả khi cài đặt gcc? –

+0

Nếu bạn gặp lỗi 'cho phép từ chối' khi bạn cố gắng chạy 'ln -s/usr/bin/gcc /usr/bin/gcc-4.2' 1) chạy 'sudo chmod 755/usr/bin/gcc' 2) chạy 'sudo ln -s/usr/bin/gcc /usr/bin/gcc-4.2' – ATSiem

+1

Vấn đề với điều này là phiên bản gcc có thể không thực sự là 4.2. Nó sẽ hoạt động như một công việc xung quanh nhưng điều này có vẻ giống như một giải pháp thực sự hacky. Có lẽ tốt hơn là nên cài đặt đúng phiên bản gcc với homebrew như @Piioo gợi ý. – caspian311

14

Cài đặt chỉ đơn giản là táo-gcc42 với bia. Nó tạo ra gcc-4.2.

brew install apple-gcc42 

Vì vậy, chúng tôi không cần các liên kết tượng trưng mà bản cập nhật của Apple có thể xóa.

Homebrew

1

Như @Artur Bodera nêu OSX hiện đại sẽ từ chối cho phép bạn tạo các liên kết tượng trưng trong các hệ thống/thư mục bin.

Để tránh điều này chỉ đơn giản là tạo ra các liên kết tượng trưng đến thư mục bin dùng của bạn

ln -s ~/bin/gcc /usr/bin/gcc-4.2 

Đừng quên để thêm thư mục bin để zshrc hoặc .bash_profile của bạn - ví dụ

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$HOME/bin 
+0

lệnh đầu tiên cho phép tôi thao tác không được phép. và hiện tại .bash_profile của tôi có - xuất PATH = "/ usr/local/bin: $ PATH". Cập nhật nó có an toàn không? Tôi đang sử dụng OSX 10.12.4 –

Các vấn đề liên quan