Celui-ci me rend fou :
J'ai besoin d'utiliser beaucoup de choses qui ne sont tout simplement pas compilées avec les compilateurs clang/llvm standard qui viennent avec Xcode 5 (sur Mac OS X 10.8), donc j'ai décidé d'installer gcc47 via brew.
Tout s'est bien passé mais quand j'essaie de compiler les choses, j'obtiens plusieurs messages d'erreur et j'ai découvert que certaines inclusions viennent toujours de "/usr/include/c++/4.2.1", ce qui est vraiment étrange.
Est-ce que quelqu'un pourrait m'expliquer comment le configurer de manière propre ?
Voici les étapes que j'ai suivies :
- brew update
- brew install gcc47
- alias gcc='gcc-4.7'
brew m'a averti que je dois configurer LDFLAGS
et CPPFLAGS
, citant (résumé) :
Ces formules sont exclusives à la programmation Keg, donc elles n'ont pas été liées à /usr/local.
Conflits avec gmp, mpfr, libmpc, ppl dans le répertoire principal.
En général, cela n'a pas de conséquences pour vous. Si vous construisez votre
propre logiciel et qu'il nécessite ces formules, vous devrez ajouter à vos
variables de construction :
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
Donc exporter LDFLAGS
et CPPFLAGS
via
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"
devrait résoudre le problème (je croyais).
Mais cela ne fonctionne pas. Je continue à recevoir des messages comme :
/usr/include/c++/4.2.1/bits/stl_vector.h:600:7: note: must qualify identifier to find this declaration in dependent base class push_back(const value_type& __x) ^
et je ne comprends tout simplement pas pourquoi ?
0 votes
Où le compilateur trouverait-il l'inclusion du vecteur - le "not" est seulement pour ces 5 bibliothèques et non pas pour les bibliothèques standard - vous devez le définir explicitement
1 votes
@Mark Ah ok, donc il suffit d'ajouter le chemin des bibliothèques standards/incluses à
LDFLAGS
etCPPFLAGS
?0 votes
Modifiez le makefile pour pointer vers le gcc Homebrew, ne créez pas d'alias.