Làm thế nào để tôi có được llvm-gcc để trỏ đến gcc thay vì tiếng kêu?


3

Khi tôi hỏi phiên bản gcc nào tôi có, tôi nhận được như sau:

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

Khi tôi cố gắng để có được thông tin về gcc: ls -la /usr/bin |grep gcc

Tôi có:

-rwxr-xr-x     1 root   wheel     18288 May 29  2018 gcc
-rwxr-xr-x     1 root   wheel      2043 Sep 26  2016 gccmakedep
lrwxr-xr-x     1 root   wheel         5 Mar 28  2018 llvm-gcc -> clang

Tôi đang sử dụng MacOS 10.13.5 và lý do tôi muốn sử dụng gcc thay vì clang là vì tôi có mã tôi muốn chạy trong MATLAB ở C, nhưng tôi không thể biên dịch mã bằng clang, vì fopenmp là không được hỗ trợ.

Khi tôi cố gắng biên dịch chỉ phần matlab của chương trình để tôi có thể chạy nó với giao diện MATLAB:

làm matlab

Tôi nhận được lỗi sau đây:

gcc -std=c99 -pedantic -Wall -O3 -fopenmp -DSSHT_VERSION=\"1.2b1\"...

clang: error: tùy chọn không được hỗ trợ '-fopenmp'

Tôi đã sử dụng liên kết: Đã cài đặt gcc với Homebrew, bây giờ làm thế nào để sử dụng gcc đó thay vì tiếng kêu?

export PATH=/usr/bin
export CXX=/usr/local/Cellar/gcc/8.2.0/bin/g++-8
export CC=/usr/local/Cellar/gcc/8.2.0/bin/gcc-8

mã của tôi


Chào mừng bạn đến hỏi khác nhau. - Điều này được hỏi khá nhiều vì vậy hãy tha thứ cho tôi vì cho rằng bạn đang sử dụng gcc tích hợp để gọi clanghành động gccthay vì gcc- Nếu vậy, điều này có trả lời toàn bộ câu hỏi của bạn không? apple.stackexchange.com/questions/245891/...
bmike

Phiên bản của gcc tôi có là từ homebrew. Đó là 8.2.0. Tôi đã thử giải pháp trong liên kết đó trước khi đăng bài này, nhưng nó không hiệu quả với tôi.
StatsBrooklyn

Hoàn hảo - Tôi sẽ thực hiện một chỉnh sửa nhỏ - giả sử bạn đã sử dụng liên kết (trong phần thân) để lấy gcc (và hiển thị đường dẫn của bạn đến gcc / phiên bản) nếu bạn muốn củng cố điều đó. Không phải ai cũng sẽ thấy những bình luận. Vui mừng tôi đã không đóng như là một bản dupe trên một giả định / giả định. Vấn đề hay - Tôi hy vọng "chúng ta" có thể giúp đỡ
bmike

Được. Cảm ơn bạn. Tôi rõ ràng là rất mới với điều này. Tôi sẽ chỉnh sửa. Tôi cũng đã tìm thấy một giải pháp tương tự, vì vậy có lẽ đây là một bản dupe.
StatsBrooklyn

Tôi đã thêm: export PATH = / usr / bin export CXX = / usr / local / Cellar / gcc / 8.2.0 / bin / g ++ - 8 export CC = / usr / local / Cellar / gcc / 8.2.0 / bin / gcc -8
Thống kêBrooklyn

Câu trả lời:


2

Apple và xcode không cung cấp gcc. Bất kỳ tập tin được gọi là gcc cho chúng tôi một liên kết đến clang

Bạn cần cài đặt gcc từ bên thứ ba và cũng kiểm tra phiên bản đã bật mp.

Cách dễ nhất là cài đặt gcc bằng trình quản lý gói như macports, homebrew hoặc fink.


Đánh dấu - có cách nào để vượt qua mp enable để brewnó được biên dịch không? Tôi cực kỳ khó chịu với gcc và không muốn giao bài tập về nhà - nhưng nếu bạn tình cờ chỉ biết ...
bmike

Tôi đã phải xác định trực tiếp đường dẫn của gcc của mình trong mã, nhưng nó đã hoạt động:
StatsBrooklyn

@bmike - Tôi không phải là chuyên gia về Homebrew nhưng không chỉ cài đặt chương trình. Vì vậy, nó chỉ cần thêm một chương trình, ví dụ như gcc vào $ PATH
Đánh dấu

Nó có thể biên dịch từ nguồn và chỉ khi bạn chọn các tùy chọn mặc định thì nó mới tải xuống gói xây dựng trước. Trước đây, khi tôi cần hỗ trợ ssl trong mongodb, tôi đã phải chuyển -withssl cho nhà sản xuất bia để thêm nó vào các cờ biên dịch. askmhs.blogspot.com/2016/11/ Trong trường hợp này, câu hỏi của tôi là vấn đề phụ vì tôi đã hiểu nhầm câu hỏi. Đó chỉ đơn giản là cách thay đổi đường dẫn và gửi đường dẫn thay thế để xây dựng tập lệnh nếu bây giờ tôi hiểu rõ hơn về nó.
bmike

Bất kỳ ý tưởng nào về điều này: Hàm ma trận phức tạp mxGetPi đã được gọi. Cập nhật mã nguồn cho phức tạp xen kẽ hoặc chạy lại MEX với tùy chọn dòng lệnh -R2017b để sử dụng API R2017b với hỗ trợ tương thích. Để biết thêm thông tin, hãy xem <a href = " /Dropbox/Code/ssht-public/src/matlab/ssht_forward_mex.mexmaci64] Lỗi 255 Tôi đang chạy MATLAB2018a. Tôi thậm chí không hiểu những gì liên quan đến R2017b đang đề cập đến.
StatsBrooklyn

-1

Có gcc được cài đặt với homebrew, trực tiếp trỏ đến nơi nó được cài đặt ở đầu mã để biên dịch (makefile):

export CXX=/usr/local/Cellar/gcc/8.2.0/bin/g++-8
export CC=/usr/local/Cellar/gcc/8.2.0/bin/gcc-8

Đó không phải là một thiết lập tốt cho PATH / bin cuối cùng sẽ là cần thiết, ví dụ như cho cp và mv
Đánh dấu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.