Le commutateur --sysroot
est utile lorsque vous ne souhaitez pas que les en-têtes/bibliothèques des chemins d'accès standard affectent votre génération.Alternatives au commutateur --sysroot de gcc?
--sysroot=dir
: Utilisez dir comme le répertoire racine logique pour les en-têtes et bibliothèques . Par exemple, si le compilateur recherche normalement les en-têtes dans/usr/include et les bibliothèques dans/usr/lib, il recherche à la place dir/usr/include et dir/usr/lib. [ref]
la même chose peut être accompli grâce à l'utilisation de variables d'environnement, les specs gcc fichier, ou toute autre méthode qui ne nécessitent pas des commutateurs de ligne de commande?
C'est la seule solution lorsque j'ai essayé de croiser AXIS2/C. Pour des raisons mystérieuses, le fichier makefile d'AXIS2/C vient de supprimer les options "--sysroot" que j'ai mises dans les variables d'environnement CFLAGS, LDFLAGS et LIBS lors de la liaison de la librairie sharedlib. J'ai également essayé de désactiver le partage avec l'option ./configure --disable-shared, mais l'éditeur de liens va se plaindre du bug "symbole dupliqué" lors de la dernière étape de la liaison. – RichardLiu
@RichardLiu: Si vous utilisez 'util/autogen.sh' pour AXIS2/C 1.6.0, une nouvelle option de configuration' --with-sysroot = DIR' apparaît. Il semble que c'est seulement passé à libtool, cependant. L'ajout de l'option de configuration '--with-cflags-sysroot' (environ 30 lignes dans chaque' configure.ac') semble fonctionner. Voulez-vous essayer ce patch? L'ensemble du projet semble périmé, car il échoue sur le premier fichier qu'il essaie de compiler ('util/src/platforms/unix/uuid_gen_unix.c') sur ma machine dev. –