xcode - tools - En mac, g++(clang) no puede buscar/usr/local/include y/usr/local/lib de forma predeterminada
command line tools for xcode (4)
Intenta ejecutar xcode-select install
Al menos en Mavericks he encontrado que si instalo la aplicación XCode sin instalar las herramientas de línea de comandos, las herramientas están disponibles, pero las compilaciones normales de Unix-ey no funcionan correctamente. Un síntoma es que /usr/local/include
no está en la ruta de búsqueda de inclusión. Las herramientas de línea de comandos parecen resolver este problema.
Estoy en un Mac y usé homebrew
para instalar gmp
.
Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx
In file included from main.cpp:2:
./gcjlib.hpp:4:10: fatal error: ''gmpxx.h'' file not found
#include <gmpxx.h>
^
1 error generated.
Entonces, explícitamente le dije a g++
que usara /usr/local/include
Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include
ld: library not found for -lgmp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Entonces, explícitamente le dije a g++
que usara /usr/local/lib
Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include -L/usr/local/lib
Kyumins-iMac:gcjlib math4tots$ ./a.out
sum is -4444
absolute value is 4444
Entonces, el único problema parece ser que g++
no reconoce /usr/local
.
Pero es tedioso escribir todo esto todo el tiempo, especialmente cuando estoy escribiendo pequeños programas de un solo archivo.
¿Hay alguna manera de que logre que g++
reconozca las cosas en /usr/local
de forma predeterminada? ¿Existe una forma estándar de que los usuarios de homebrew
hagan esto?
Estoy en OS X 10.9.3 con Xcode 5.1.1 en caso de que sea relevante.
También uso Homebrew y tuve un problema similar en Mac OSX Maverick 10.9.5 y Xcode 6.0.1, pero se solucionó al ejecutar:
xcode-select --install
Tenga en cuenta que no funciona sin los dobles guiones dados por la respuesta anterior. Esto instala las herramientas de línea de comandos que también crean /usr/lib/
y /usr/include/
. No sé por qué Homebrew no verifica automáticamente esto luego de la instalación, ya que verifica si hay Xcode ...
Si desea verificar exactamente qué carpetas está buscando su compilador para los archivos de encabezado, puede escribir:
cpp -v
Tengo Yosemite 10.10.5 y ejecuto xcode-select --install
no solucionó el problema. El comando devuelto con xcode-select: error: command line tools are already installed, use "Software Update" to install updates
.
Cuando ejecuté xcode-select -p
, mostró /Applications/Xcode.app/Contents/Developer
. Terminé borrando Xcode del directorio de aplicaciones, lo que dio como resultado xcode-select -p
returning /Library/Developer/CommandLineTools
. Esto solucionó el error del compilador.
Una solución alternativa sería:
export C_INCLUDE_PATH=/usr/local/include
export CPLUS_INCLUDE_PATH=/usr/local/include
Al menos esto engañó al pre-procesador para que se comportara aquí :)