Llvm-gcc'nin clang yerine gcc'ye işaret etmesini nasıl sağlayabilirim?


1

Hangi gcc sürümüne sahip olduğumu sorduğumda aşağıdakileri alıyorum:

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

Gcc hakkında bilgi almaya çalıştığımda: ls -la /usr/bin |grep gcc

Alırım:

-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

MacOS 10.13.5 kullanıyorum ve clang yerine gcc kullanmak istememin sebebi C kodunda olan MATLAB'da çalıştırmak istediğim kodun olması, ancak fopenmp olduğu için clang kodunu derleyemem. desteklenmeyen.

Programın sadece matlab bölümünü derlemeye çalıştığımda, onu bir matlab arayüzü ile çalıştırabilirim:

matlab yapmak

Aşağıdaki hatayı alıyorum:

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

clang: error: desteklenmeyen seçenek '-fopenmp'

Bağlantıyı kullandım: Homebrew ile yüklü gcc, şimdi clang yerine bu gcc nasıl kullanılır?

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

koduma


Farklı sormaya hoş geldiniz. - Bu biraz daha sorulur, bu yüzden arama yapan yerleşik gcc'yi kullandığınızı varsaydığım için beni bağışlayın clang gibi davranmak gcc olmak yerine gcc - Eğer öyleyse, bu tüm sorunuzu cevaplıyor mu? apple.stackexchange.com/questions/245891/...
bmike

Sahip olduğum gcc sürümü homebrew'den. 8.2.0. Bunu göndermeden önce bu bağlantıdaki çözümü denedim, ancak benim için işe yaramadı.
StatsBrooklyn

Mükemmel - Küçük bir düzenleme yaparım - bağlantıyı (vücuttaki) gcc'yi almak için kullandığınızı (ve yolunu gcc / sürümüne göstermek için) kullandığınızı varsayalım. Herkes yorumları görmeyecek. Varsayım / varsayım üzerine kabadayı olarak yaklaşmadığıma sevindim. Güzel sorun - umarım "biz" in kollektifi yardımcı olabilir
bmike

Tamam. Teşekkür ederim. Belli ki bu konuda çok yeniyim. Düzenleyeceğim. Ben de benzer bir çözüm buldum, bu yüzden belki de bir dupe.
StatsBrooklyn

Ekledim: ihracat PATH = / usr / bin ihracat CXX = / usr / yerel / Kiler / gcc / 8.2.0 / bin / g ++ - 8 ihracat CC = / usr / yerel / Kiler / gcc / 8.2.0 / bin / gcc -8
StatsBrooklyn

Yanıtlar:


2

Apple ve xcode, gcc sağlamaz. Herhangi bir dosya gcc bize clang'a bir link

Üçüncü şahıstan gcc'yi yüklemeniz ve sürümün mp'nin etkin olup olmadığını kontrol etmeniz gerekiyor.

En kolay yol, gcc'yi macport, homebrew veya fink gibi bir paket yöneticisi kullanarak yüklemektir.


Mark - geçmek için bir yol olurdu erime noktası: sağlamak brew böylece derlenmiş olsun? Gcc'ye çok paslandım ve ev ödevi vermek istemiyorum - ama eğer sadece bilseydin ...
bmike

Kodumdaki gcc'nin yolunu doğrudan belirtmek zorunda kaldım, ancak işe yaradı:
StatsBrooklyn

@bmike - Ben bir Homebrew uzmanı değilim ama sadece programları yüklemek demlemek değil. Bu yüzden sadece $ PATH'e bir program, örneğin, gcc ekler.
Mark

Kaynaktan derleyebilir ve yalnızca varsayılan seçenekleri seçerseniz bir ön derleme paketi indirir. Geçmişte, mongodb'da ssl desteğine ihtiyaç duyduğumda, bu derleme bayraklarını eklemesi için demiryoluna geçmek zorunda kaldım. askmhs.blogspot.com/2016/11/... Bu durumda, soruyu yanlış anladığımdan beri sorum yan sorun. Şimdi, daha iyi anlarsam, komut dosyası oluşturmak için yolu nasıl değiştireceğiniz ve alternatif yolu nasıl göndereceğiniz budur.
bmike

Bu konuda herhangi bir fikir: Ayrı karmaşık matris işlevi mxGetPi çağrıldı. Araya eklenmiş kompleks için kaynak kodunu güncelleyin veya R2017b API'yi uyumluluk desteğiyle kullanmak için MEX'i -R2017b komut satırı seçeneğiyle yeniden çalıştırın. Daha fazla bilgi için bkz. & Lt; a href = "matlab: helpview ([docroot '/matlab/helptargets.map'),'support_for_IC_API')">Interleaved Complex & lt; / a & gt; make: *** [/super/.../Dropbox/Code/ssht-public/src/matlab/ssht_forward_mex.mexmaci64] Hata 255 MATLAB2018a kullanıyorum. R2017b referansının ne anlama geldiğini bile anlamıyorum.
StatsBrooklyn

-1

Gcc'nin homebrew ile kurulu olması, doğrudan kodun başında derlenecek (makefile) konumunda kurulu olduğu yere işaret eder:

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

Bu en sonunda PATH / bin için iyi bir ayar değildir; cp ve mv için
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.