【问题标题】:How do I build just the directory containing my updated source code如何仅构建包含更新的源代码的目录
【发布时间】:2015-12-28 23:03:45
【问题描述】:

我通过从三星和 AOSP 下载源代码并按照 README 文件中的说明运行 make,成功地为三星 Note 3 创建了映像。但现在我想修改一个设备驱动程序,并在图像中查看结果。这意味着我真的不想重新创建整个图像。而只是修改后的文件,即 /drivers/char/examples 目录。我尝试过“m”、“mm”和“mmm”,但出现以下错误:

sansari@ubuntu:~/WORKING_DIRECTORY$ m
m: command not found
sansari@ubuntu:~/WORKING_DIRECTORY$ mm
The program 'mm' is currently not installed. You can install it by typing:
sudo apt-get install multimail

我也尝试从示例目录运行 make,我得到:

sansari@ubuntu:~/WORKING_DIRECTORY/drivers/char/examples$ make 
make --directory=src
make: *** src: No such file or directory.  Stop.
make: *** [src] Error 2

这是我在这个目录中的内容以及 make 文件:

sansari@ubuntu:~/WORKING_DIRECTORY/drivers/char/examples$ ls
backup  examples.c  hello1.c  Makefile
sansari@ubuntu:~/WORKING_DIRECTORY/drivers/char/examples$ more Makefile 
lib_src := src 
lib_headers := headers 
.PHONY: all $(lib_src) $(lib_headers)
$(lib_src) :
    $(MAKE) --directory=$@
    $(lib_*): $(MAKE) --directory=$@

obj-$(CONFIG_TOS)   += examples.o

我应该怎么做,当我更新 c 源文件时,我可以构建一个更新的图像来刷新我的手机并尝试查看结果?

我想知道如果我删除examples.ko,make会再次重建。问题是如果我只为 /examples 目录发出 make ,这会起作用吗?

谢谢, 肖恩

【问题讨论】:

  • 'mm' 应该在当前目录中构建所有模块;它通过调用 build/envsetup.sh (elinux.org/Android_Build_System) 安装在您当前的 shell 环境中。为了使其正确构建,您可能还需要使用“午餐”或“早餐”(Cyanogenmod)命令设置您的目标平台

标签: android kernel gnu-make device-driver kbuild


【解决方案1】:

这里有很多错误,所以不可能弄清楚应该发生什么。我只会描述发生了什么。

sansari@ubuntu:~/WORKING_DIRECTORY/drivers/char/examples$ make 
make --directory=src
make: *** src: No such file or directory.  Stop.
make: *** [src] Error 2

表示 Makefile 期望在您运行 make 的位置下存在一个名为 src 的目录。该目录中应该有一个名为Makefile 的文件,它将进一步说明如何编译examples.chello1.c

假设src 目录位于~/WORKING_DIRECTORY 下。在这种情况下,您将通过 make -f drivers/char/examples 调用 make。

但是我猜在那个目录或其他目录之一中,您应该会看到我猜您被指示运行的程序 mmm。而且我也猜测这就是发出更不寻常的 make 命令的原因。

【讨论】:

    猜你喜欢
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 2018-08-18
    • 1970-01-01
    • 2017-05-07
    • 2012-06-10
    相关资源
    最近更新 更多