前言
在将Android kernel
集成进AOSP
编译树中,会或多或少出现由于环境变量OUT_DIR
为相对路径,导致存放路径错误(例如产物生成在了kernel/msm-4.9/out
下),这类问题可以通过如下任意一种方法解决:
Tip
- 按照官网建议,使用
export OUT_DIR
设置当前终端的全局环境变量来生效:export OUT_DIR=out_mytarget
- 如果你只是想将默认的
out
修改为绝对路径,而方法1不太方便,那么可以修改这里://修改文件:build/soong/ui/build/config.go ... func NewConfig(ctx Context, args ...string) Config { ... // Make sure OUT_DIR is set appropriately if outDir, ok := ret.environ.Get("OUT_DIR"); ok { //添加如下代码 @{ outDir := filepath.Clean(outDir) if (!filepath.IsAbs(outDir)) { outDir = filepath.Join(os.Getenv("TOP"), outDir) } //添加如上代码 @} ret.environ.Set("OUT_DIR", outDir) } else { outDir := "out" if baseDir, ok := ret.environ.Get("OUT_DIR_COMMON_BASE"); ok { if wd, err := os.Getwd(); err != nil { ctx.Fatalln("Failed to get working directory:", err) } else { outDir = filepath.Join(baseDir, filepath.Base(wd)) } //添加如下代码 @{ } else { outDir = filepath.Join(os.Getenv("TOP"), outDir) //添加如上代码 @} } ret.environ.Set("OUT_DIR", outDir) } ... }