Este me está volviendo loco:
Necesito usar muchas cosas que simplemente no compilan con los compiladores estándar clang/llvm que vienen con Xcode 5 (en Mac OS X 10.8), así que decidí instalar gcc47 vía brew.
Todo ha ido bien, pero cuando intento compilar las cosas, me salen varios mensajes de error y he descubierto que algunos includes siguen viniendo de "/usr/include/c++/4.2.1", lo cual es realmente extraño.
¿Alguien puede explicarme cómo configurarlo de forma limpia?
Estos son los pasos que estaba haciendo:
- actualización de la cerveza
- brew install gcc47
- alias gcc='gcc-4.7'
brew me advirtió que tengo que configurar LDFLAGS
y CPPFLAGS
, citando (resumidamente):
This formulas are keg-only: so they were not symlinked into /usr/local.
Conflicts with gmp, mpfr, libmpc, ppl in main repository.
Generally there are no consequences of this for you. If you build your
own software and it requires these formulas, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/gmp4/lib
CPPFLAGS: -I/usr/local/opt/gmp4/include
LDFLAGS: -L/usr/local/opt/mpfr2/lib
CPPFLAGS: -I/usr/local/opt/mpfr2/include
LDFLAGS: -L/usr/local/opt/libmpc08/lib
CPPFLAGS: -I/usr/local/opt/libmpc08/include
LDFLAGS: -L/usr/local/opt/ppl011/lib
CPPFLAGS: -I/usr/local/opt/ppl011/include
LDFLAGS: -L/usr/local/opt/cloog-ppl015/lib
CPPFLAGS: -I/usr/local/opt/cloog-ppl015/include
Así que la exportación LDFLAGS
y CPPFLAGS
a través de
export LDFLAGS="${LDFLAGS} -L/usr/local/opt/gmp4/lib -L/usr/local/opt/mpfr2/lib -L/usr/local/opt/libmpc08/lib -L/usr/local/opt/ppl011/lib -L/usr/local/opt/cloog-ppl015/lib"
export CPPFLAGS="${CPPFLAGS} -I/usr/local/opt/gmp4/include -I/usr/local/opt/mpfr2/include -I/usr/local/opt/libmpc08/include -I/usr/local/opt/ppl011/include -I/usr/local/opt/cloog-ppl015/include"
debería ser suficiente (eso creía).
Pero no es así. Sigo recibiendo mensajes como:
/usr/include/c++/4.2.1/bits/stl_vector.h:600:7: note: must qualify el identificador para encontrar esta declaración en la clase base dependiente push_back(const value_type& __x) ^
y simplemente no entiendo por qué?