San*_*uys 19 makefile android-ndk
我有一个名为$ MY_ENV_VARIABLE的环境变量集.
如何在makefile中使用此变量(例如)包含一些源文件?
LOCAL_SRC_FILES = $(MY_ENV_VARIABLE)/libDEMO.so
Run Code Online (Sandbox Code Playgroud)
像上面这样的东西似乎不起作用.
注意:在我的情况下,需要使用Android NDK进行构建,但我想这一般适用于make.
joz*_*yqk 15
只是添加一些信息......
在make中访问环境变量的语法就像make中的其他变量一样......
#export the variable. e.g. in the terminal,
export MY_ENV_VARIABLE="hello world"
...
#in the makefile (replace before call)
echo $(MY_ENV_VARIABLE)
Run Code Online (Sandbox Code Playgroud)
这在执行命令之前执行替换.如果您反而希望在命令执行期间进行替换,则需要转义$(例如,echo $MY_ENV_VARIABLE不正确并将尝试替换Mmake中的变量,并将其追加到Y_ENV_VARIABLE)...
#in the makefile (replace during call)
echo $$MY_ENV_VARIABLE
Run Code Online (Sandbox Code Playgroud)
Mad*_*ist 11
确保从shell中导出变量.运行:
echo $MY_ENV_VARIABLE
Run Code Online (Sandbox Code Playgroud)
显示它是否在shell中设置.但是要知道你是否已经导出它以便子shell和其他子命令(比如make)可以看到它尝试运行:
env | grep MY_ENV_VARIABLE
Run Code Online (Sandbox Code Playgroud)
如果它不存在,请确保export MY_ENV_VARIABLE在运行make之前运行.
这就是你需要做的所有事情:make会在启动时自动导入所有环境变量作为make变量.
| 归档时间: |
|
| 查看次数: |
27389 次 |
| 最近记录: |