Lire la variable d'environnement dans le fichier
J'ai une variable d'environnement avec le nom $MY_ENV_VARIABLE.
Comment puis-je utiliser cette variable dans mon makefile (par exemple) comprennent certains fichiers source?
LOCAL_SRC_FILES = $(MY_ENV_VARIABLE)/libDEMO.so
Quelque chose comme ci-dessus ne semble pas fonctionner.
Remarque: dans mon cas, ce qui est nécessaire à la construction de l'Android NDK mais je suppose que cela s'applique à faire en général.
- Il devrait fonctionner. Êtes-vous sûr que la variable est définie?
- vous variable déclarée devrait fonctionner. vous pouvez également essayer := au lieu de = et enlever les espaces ... aussi avez-vous essayé l'option-e dans votre invocation ? , -e : les forces de l'environnement de variables à prendre le pas ...
Vous devez vous connecter pour publier un commentaire.
Assurez-vous que vous avez exporté la variable à partir de votre shell. En cours d'exécution:
vous indique si c'est dans votre shell. Mais pour savoir si vous avez exporté en sorte que les sous-coquille et d'autres sous-commandes (faire) peut le voir essayer de l'exécuter:
Si il n'y est pas, assurez-vous d'exécuter
export MY_ENV_VARIABLE
avant d'exécuter le faire.C'est tout ce que vous devez faire: rendre importe automatiquement toutes les variables d'environnement que de faire de variables quand il démarre.
csh
c'estsetenv MY_VAR my_val
Juste pour ajouter quelques informations...
La syntaxe pour accéder à la variable d'environnement en faire, c'est comme les autres variables en faire...
Effectue la substitution avant l'exécution de la commande. Si, au contraire, vous, souhaitez la substitution de survenir lors de l'exécution de la commande, vous avez besoin pour échapper à la
$
(Par exemple,echo $MY_ENV_VARIABLE
est incorrect et ne tentative de substitution de la variableM
en faire, et l'ajouter àY_ENV_VARIABLE
)...J'ai juste eu un problème similaire (sous Cygwin):
echo $OSTYPE
sur la coque imprime la valeur, maisenv | grep OSTYPE
ne pas donner n'importe quelle sortie.Que je ne peux pas garantir que cette variable est
export
ed sur toutes les machines que je veux courir que makefile, j'ai utilisé les méthodes suivantes pour récupérer la variable de dans le makefile:Qui, bien sûr, peut également être utilisé dans une condition semblable à la suivante:
EDIT:
Certaines choses que j'ai trouvé après avoir expérimenté avec l'info de jozxyqk réponse, le tout dans le makefile:
@echo $$OSTYPE
ou@echo "$$OSTYPE"
dans une recette, la variable est a élargi avec succès danscygwin
.ifeq ($$OSTYPE,cygwin)
ouifeq ("$$OSTYPE","cygwin")
ne pas le développer.TEST = "$$OSTYPE"
conduira àecho $(TEST)
impressioncygwin
(l'expansion est effectuée par leecho
appel) mais qui ne fonctionne pas dans un état -ifeq ($(TEST),cygwin)
est faux.