执行"make modules_install"而不执行"make modules"有意义吗?

Is it meaningful to execute "make modules_install" without executing "make modules"?

KernelBuild tutorial from http://kernelnewbies.org 开始,我没有看到“make modules”命令。本文只在“sudo make modules_install install”之前执行“make”命令。

但是从make help输出:

  all             - Build all targets marked with [*]
* vmlinux         - Build the bare kernel
* modules         - Build all modules
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)

好像没有“make modules”命令,就不需要执行“make modules_install”命令了。执行“make modules_install”而不执行“make modules”有意义吗?

没有,如果你理解正确的话。

make modules
这将像任何其他程序一样编译所有模块。创建目标文件。

make modules_install
一旦你的文件编译没有任何错误,那么这个命令将把生成的 .so 文件放到适当的目录中。

所以如果你 运行 modules_install 没有 make modules 那么就没有什么可以复制的了。

希望对您有所帮助。

Is it meaningful to execute “make modules_install” without executing “make modules”?

是的,但前提是您已经在 make modules_install 之前执行了 make。如果模块不是使用 make modules 或仅使用 make 构建的,则无法执行 modules_installmakemake modules 只有一个区别:make modules 只编译设置为

的模块或源代码
obj-CONFIG_OPTION_NAME=m

在生成文件中。如果你只想构建 Linux 内核,只需使用 makemake modules 已经包含在那里。