2009-08-07 10 views
4

J'ai utilisé sbox avec une base de code basée sur Make sans problème. J'utilise une base de code basée sur Scons et je rencontre des problèmes étranges.Scons dans Scratchbox: Impossible de trouver g ++

Il semble que dans Scratchbox, Scones ne peut pas trouver g ++. Par exemple, il tente d'exécuter des choses comme:

o bonjour hello.c

Quand il devrait faire:

g ++ -o bonjour hello.c

donc probablement sa g ++ chaîne la variable est vide. g ++ est présent et dans le PATH - "lequel g ++" produit/scratchbox/compilers/bin/g ++.

La même source se compile bien en dehors de la zone de travail, il ne devrait donc pas y avoir de problème avec scons ou la base de code. Il n'y a pas d'environnement spécial variables définies en dehors de la case à cocher quand cela fonctionne.

Si je créer un lien symbolique/usr/bin/g ++ à/scratchbox/compilateurs/bin/g ++, il obtient un peu plus loin (produit le g correct aspect ++ commandes) mais puis sur les exécuter produit:

sb_gcc_wrapper (g ++): /scratchbox/compilateurs/arm-linux-cs2007q3-51sb3/bin/SBOX-bras-none-linux-gnueabi-g ++: Aucun fichier ou répertoire

Le fichier répertorié est présent.

PATH contient/scratchbox/compilateurs/bin, SBOX_REDIRECT_FROM_DIRS contient/usr/bin et SBOX_REDIRECT_TO_DIRS contient/scratchbox/compilateurs/bin, donc je pense qu'il devrait être capable de le trouver.

Toutes les suggestions seraient appréciées! Merci, Ray

Edit: Peut-être lié - il trouver peut pas non plus pkg-config à moins que je préfixer le chemin complet dans les ne se propage pas la variable d'environnement PATH scons fichier

Répondre

7

scons, tester si par exemple 'quel g ++' n'aide pas beaucoup.

Either set the compilers directly, e.g. 
env['CXX'] = '/scratchbox/compilers/bin/g++' 

Créer votre propre chemin explicite

path = ['/scratchbox/compilers/bin/','/bin', '/usr/bin', '/sbin','/usr/sbin'] 
env = Environment(ENV = {'PATH' : path}) 

Ou utiliser la variable d'env PATH de votre shell

import os 
env = Environment(ENV = {'PATH' : os.environ['PATH']}) 
+0

Merci - cela a fondamentalement résolu le problème. L'importation de PATH a corrigé les problèmes d'emplacement pkg-config et g ++, mais le fichier n'a toujours pas trouvé d'erreur pour sbox-arm-none-linux-gnueabi-g ++. J'ai fait la mauvaise chose et importé tout l'environnement avec "ENV = os.environ", et maintenant g ++ fonctionne bien ... – Ray2k

Questions connexes