这个问题是特定于将cmake作为Android构建过程的一部分。
我在CMakeLists.txt内部使用AndroidStudio2.2预览7 (ubuntu),我可以使用:${ANDROID_NDK}访问Android路径
但我怎样才能进入:
我已经尝试过使用$ENV{name_of_the_environment_variable_here},但它始终是空的,即使存在环境变量。我猜当gradle调用cmake时,它会以某种方式“隐藏”env var。
发布于 2022-01-30 04:19:17
我认为您不能使用$ENV,这只是变量的一个例子,因为它们是环境变量。但是,您应该能够键入env并按enter来获取当前设置的变量列表。然后,在列表中看到的,您可以通过键入$VARIABLE_NAME来调用,在它们之前使用一个命令来让他们做一些事情。echo $VARIABLE会把你的变量回音到stdout。
我不确定$ANDROID_SDK是如何设置的,如果它是安装过程的一部分,等等,但是通常您会在.profile、.bash_profile或.bashrc配置文件中设置用户环境变量。这些文件由shell按该顺序读取。在/etc/environment、/etc/profile和/etc/bash.bashrc中设置了系统范围的变量,但您可能不想混淆这些变量(大多数发行版鼓励在/etc/profile.local中进行辅助添加,但这是另一个答案)。
这些文件中使用哪一个并不特别重要,除非您想要做的事情与加载它们的顺序交互。通常,我会查找我添加的操作系统或其他东西设置变量的位置,并将它们放在这些变量附近。通过键入以下内容,可以找到设置环境变量的位置:
% for i in .profile .bash_profile .bashrc; do grep -H PATH $HOME/$i; done(%是提示符,不要键入%)
。。这将遍历这3个文件,并显示是否在其中任何一个文件中设置了用户$PATH。
Bash使用的是export ENV命令,而不是set ENV命令,后者来自于原来的sh,AFAIK仅是FreeBSD和pfSense等衍生工具的默认值。默认情况下,几乎所有其他操作系统都使用Bash,除了最近移动到zsh并使用export的MacOS和使用ksh (没有人使用OpenBSD)的OpenBSD。
如果您想验证您使用的是哪个shell,请输入echo $SHELL或echo $0并按enter,它应该会通知您。
您可以通过在bash终端中键入此命令并按enter键,临时添加环境变量:
% export ANDROID_SDK_ROOT=/home/username/AndroidSDK为了明确起见,这是一个示例路径,所以最好使用android文件所在的实际路径。但是,这个示例是Android最近安装时尝试使用的默认安装位置,所以如果您不确定它们在哪里,那么它可能是一个检查的好地方。
要对环境变量进行更永久的设置,请打开一个文本编辑器,并将上面的行添加到我在第一段中提到的配置文件中(它们将在您的$HOME文件夹中)。或者,您可以从提示符中运行它并将其自动添加到您的文件中:
% echo 'export ANDROID_SDK_ROOT=/home/username/AndroidSDK' >> $HOME/.bashrc注意使用两个尖括号而不是一个,因为一个角括号将用一行覆盖整个文件。
如何访问任何环境变量?
如果您不确定哪个文件夹是$HOME,请尝试输入cd $HOME并点击enter --这将带您去那里。这就是访问环境变量的方式--在调用变量时使用一个命令,它的作用应该就像您已经输入了全部内容一样。
要访问环境变量,输入echo $NAME_OF_VARIABLE并将其回显到屏幕。如果您想搜索前面提到的设置环境变量的三个配置文件,可以像前面那样使用grep,只需更改搜索字符串即可。例如(在$HOME中):
% grep SDK_ROOT .bashrc .profile .bash_profile或者,可以键入env来列出所有当前设置的变量,并通过将输出传递到grep命令来筛选它们:
% env | grep SDK如果您只想列出所有的set变量和围绕整个程序的根,只需键入env,而不是将其连接到grep (grep是一个过滤器)。
最后,我将给出我的$ANDROID_SDK_ROOT $ANDROID_SDK和$SDK_ROOT变量在.bashrc中的一个例子--我注意到在安装这些工具时,它们都使用了这三个变量(这不是很有趣吗?)
% grep ANDROID .bashrc
export ANDROID_SDK=$HOME/development/Android/SDK
export ANDROID_SDK_ROOT=$HOME/development/Android/SDK
export PATH=$PATH:$ANDROID_SDK:$JAVA_HOME:$ANDROID_SDK/cmdline-tools/latest/bin:$ANDROID_SDK/build-tools/32.0.0:$ANDROID_SDK/emulator:$ANDROID_SDK/emulator/bin64:$ANDROID_SDK/tools:$ANDROID_SDK/tools/bin:$ANDROID_SDK/extras:$ANDROID_SDK/platform-tools:$HOME/development/AndroidStudio/bin
export ANDROID_STUDIO=$HOME/development/AndroidStudio
% grep SDK_ROOT .bashrc
export SDK_ROOT=$HOME/development/Android/SDK
export ANDROID_SDK_ROOT=$HOME/development/Android/SDK希望能回答一些问题,很抱歉花了这么长时间才给你一个答复。
https://stackoverflow.com/questions/38764787
复制相似问题