Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建Android时读取golang中的Makefile变量_Go_Makefile_Android Source - Fatal编程技术网

构建Android时读取golang中的Makefile变量

构建Android时读取golang中的Makefile变量,go,makefile,android-source,Go,Makefile,Android Source,在device/vendor/rules.mk中,我们有几个标志。例如: INCLUDE_VENDOR_PACKAGES:=true 我正在编写一个go包,根据上面的标志执行一些条件操作。我尝试了几种方法来获取这个标志的值,比如通过Golang的os包API和通过$操作符,就像我们在shell脚本中所做的那样。但这些都不起作用 在go包的构建时,是否仍然可以从Makefile获取标志?Make变量是Make的内部变量*它们不(直接)暴露于按规则运行的配方(或GNU函数实现运行的命令)。您需要明

device/vendor/rules.mk
中,我们有几个标志。例如:

INCLUDE_VENDOR_PACKAGES:=true
我正在编写一个go包,根据上面的标志执行一些条件操作。我尝试了几种方法来获取这个标志的值,比如通过Golang的
os
包API和通过
$
操作符,就像我们在shell脚本中所做的那样。但这些都不起作用


go
包的构建时,是否仍然可以从
Makefile
获取标志?

Make变量是
Make
的内部变量*它们不(直接)暴露于按规则运行的配方(或GNU函数实现运行的命令)。您需要明确规定将这些值提供给运行
make
的命令,通常可以将所需的值显式放置到各个命令的环境中,或者将它们作为命令行参数传递给这些命令



*但是,
make
获取变量值的一个地方是来自类似命名的环境变量,在某些情况下,
make
依次运行的命令也可以使用这些环境变量。

make变量是
make
的内部变量*它们不(直接)暴露于规则中运行的配方(或GNU函数实现运行的命令)。您需要明确规定如何将这些值提供给
make
运行的命令,通常可以将所需的值显式放置到各个命令的环境中,或者将它们作为命令行参数传递给这些命令



*但是,
make
获取变量值的一个地方是来自类似命名的环境变量,在某些情况下,
make
依次运行的命令也可以使用这些环境变量。

make全局变量
var INCLUDE\u VENDOR\u PACKAGES=“”
。内部构建脚本添加
--ldflags“-X main.INCLUDE_VENDOR_PACKAGES=${FLAG}”
作为生成的参数。(代替main的可能是变量所在的包的路径)我将该变量作为示例之一。可能有许多变量需要我编写Golang条件实现。这种方法需要大量不必要的代码添加。@LaevusDexterMake一个全局变量
var INCLUDE\u VENDOR\u PACKAGES=“”
。内部构建脚本添加
--ldflags”-X main.INCLUDE_VENDOR_PACKAGES=${FLAG}“
作为构建的参数。(代替main的可能是变量所在的包的路径)我举了这个变量作为例子。可能有很多变量需要我编写Golang条件实现。这种方法需要添加大量不必要的代码。@laevusdexter我认为应该有一种Android方式,因为Android构建系统同时使用Makefile、Blueprint和Golang。例如参考检查Golang中一些常用Makefile键映射的映射,@TheLittleNaruto,构建属性有一个共享词汇表,这并不意味着
make
自动公开这些数据以构建它运行的配方,这是我可以描述为正如您所问,配方中的命令从Makefile中获取此类数据。毫无疑问,有一种机制可以通过Android更广泛的构建框架传递此类信息——环境变量仍然是我的猜测——但这并不会改变问题的答案。我认为应该有一种Android方式,因为Android构建系统em同时使用Makefile、Blueprint和Golang。请检查Golang中一些常用Makefile键映射的映射,以供参考@TheLittleNaruto,构建属性有一个共享词汇表并不意味着
make
自动将这些数据公开给它运行的构建配方,这将是n正如你所问,我需要任何可以描述为从Makefile获取此类数据的配方中的命令的东西。毫无疑问,有一种机制可以通过Android更广泛的构建框架传递此类信息——环境变量仍然是我的猜测——但这不会改变对所提出问题的答案。