Cuando pregunto qué versión de gcc tengo, obtengo lo siguiente:
Configurado con: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM versión 9.1.0 (clang-902.0.39.2)
Objetivo: x86_64-apple-darwin17.6.0
Modelo de hilo: posix
Directorio instalado: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Cuando intento obtener información sobre gcc: ls -la /usr/bin |grep gcc
Obtengo:
-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
Estoy usando MacOS 10.13.5, y la razón por la que quiero usar gcc en lugar de clang es porque tengo código que quiero ejecutar en MATLAB que está en C, pero no puedo compilar el código con clang, porque fopenmp no es compatible.
Cuando intento compilar solo la parte de matlab del programa para poder ejecutarlo con una interfaz de matlab:
make matlab
Obtengo el siguiente error:
gcc -std=c99 -pedantic -Wall -O3 -fopenmp -DSSHT_VERSION=\"1.2b1\"...
clang: error: opción no compatible '-fopenmp'
Utilicé el enlace: Installed gcc with Homebrew, now how to use that gcc instead of clang?
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
en mi código.
0 votos
Bienvenido a Ask Different. - Esto se pregunta bastante a menudo, por lo que perdóname por suponer que estás utilizando el gcc incorporado que llama a
clang
para actuar comogcc
en lugar de sergcc
- Si es así, ¿esto responde a tu pregunta completa? apple.stackexchange.com/questions/245891/…0 votos
La versión de gcc que tengo es de homebrew. Es la 8.2.0. Intenté la solución en ese enlace antes de publicar esto, pero no funcionó para mí.
0 votos
Perfecto - Haría una pequeña edición - di que utilizaste el enlace (en el cuerpo) para obtener gcc (y muestra tu ruta a gcc / versión) si quieres reforzar eso. No todos verán los comentarios. Me alegra no haberlo cerrado como duplicado por una suposición. Buen problema - espero que el colectivo "nosotros" pueda ayudar
0 votos
Ok. Gracias. Obviamente soy muy nuevo en esto. Editaré. También he encontrado una solución similar, así que quizás sea un duplicado.
0 votos
He añadido: 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
0 votos
No sucede saber si puedo agregar un camino para un archivo mex.h, que se necesita y no se encuentra en el resto de mi código, ¿verdad?
0 votos
@StatsBrooklyn Las rutas para un archivo mex.h serán un parámetro -I para gcc, pero esto estará en tu script de construcción y no se establecerá desde la línea de comandos (al igual que la ruta a gcc)
0 votos
¿Cuál es tu script de compilación/makefile?
0 votos
@Mark Mi archivo make es para compilar un programa de transformación rápida de armónicos esféricos en giro (ssht) que se supone que se conecta con Matlab. Ver github.com/astro-informatics/ssht. Sin embargo, finalmente logré compilar más allá de la parte mex, que también especifiqué en la ruta. Pero todavía no está encontrando los archivos mex dentro del programa ssht en MATLAB, así que algo sigue mal. No sé por dónde empezar en este punto. Sigo obteniendo un error de compilación: make: ***/Users/.../Code/ssht-public/src/matlab/ssht_forward_mex.mexmaci64 Error 255. –