在许多驱动程序文件夹中创建 build-in.o

2024-05-25

我正在用我的自定义驱动程序构建内核。成功构建后,我发现了许多 build-in.o 文件。任何人都可以详细说明这些文件是如何在这里结束的吗?我只能怀疑这些与更高级别的 makefile 有关。


built-in.o 文件是未构建为模块的内核的每个目录目标的编译产物。

请参阅文档/kbuild/makefiles.txt

每个子目录都有一个 kbuild Makefile,它执行从上面传递下来的命令。 kbuild Makefile 使用信息 从 .config 文件构建 kbuild 使用的各种文件列表 构建任何内置或模块化目标。

--- 3.1 目标定义

    Goal definitions are the main part (heart) of the kbuild Makefile.
    These lines define the files to be built, any special compilation
    options, and any subdirectories to be entered recursively.

    The most simple kbuild makefile contains one line:

    Example:
            obj-y += foo.o

    This tells kbuild that there is one object in that directory, named
    foo.o. foo.o will be built from foo.c or foo.S.

    If foo.o shall be built as a module, the variable obj-m is used.
    Therefore the following pattern is often used:

    Example:
            obj-$(CONFIG_FOO) += foo.o

    $(CONFIG_FOO) evaluates to either y (for built-in) or m (for module).
    If CONFIG_FOO is neither y nor m, then the file will not be compiled
    nor linked.

--- 3.2 内置对象目标 - obj-y

    The kbuild Makefile specifies object files for vmlinux
    in the $(obj-y) lists.  These lists depend on the kernel
    configuration.

    Kbuild compiles all the $(obj-y) files.  It then calls
    "$(LD) -r" to merge these files into one built-in.o file.
    built-in.o is later linked into vmlinux by the parent Makefile.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在许多驱动程序文件夹中创建 build-in.o 的相关文章

  • 如何清理 Xcode 5 中的构建文件夹?

    Xcode 5 中 清理构建文件夹 的快捷方式似乎消失了 Command Option Shift K 不再起作用 有人找到新的快捷方式了吗 从 Xcode 7 开始 此功能又回来了 按Command Option Shift K 或者从菜
  • 并发 I/O - 缓冲区损坏、块设备驱动程序

    我开发块分层设备驱动程序 所以 我拦截WRITE请求并加密数据 并解密数据end bio 例行程序 在处理和READ要求 所以在单流中一切正常 但是 如果尝试同时从两个或更多进程执行 I O 我会遇到缓冲区内容损坏的情况 我没有任何本地存储
  • 了解 CMake 背后的目的[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我试图理解 CMake 背后的目的 为什么它被设计成现在这样 以下是我想回答的一些问题 为什么CMake会生成生成文件 https e
  • 如何像C99一样使用make和编译?

    我正在尝试使用 Makefile 编译 Linux 内核模块 obj m main o all make C lib modules shell uname r build M PWD modules clean make C lib mo
  • Cordova 无法构建项目

    Update 新读者 请检查我最后的编辑 更新cordova后 无法构建 运行 Mac mini de Toni funcook toniweb sudo cordova build Password Running command Use
  • 为什么存在系统调用

    我一直在阅读有关系统调用及其在 Linux 中如何工作的内容 我还有更多的阅读要做 但我读过的一件事都没有回答 那就是 为什么我们需要系统调用 我知道系统调用是用户空间程序要求内核执行某些操作的请求 但我的问题基本上是 为什么用户空间程序本
  • Java 中有没有类似 cmake 的工具?

    迄今为止我所知道的最好的Java构建工具似乎是maven 但它仍然没有提供像 cmake 那么多的灵活性 有人知道 java 的类似 cmake 的工具吗 只为您的兴趣 我在 CMake 中开发了 Java 支持 它从 2 8 6 版本开始
  • 将 make 与 msysgit 一起使用

    我在 Windows 7 上使用 msysgit 但它似乎没有附带 make 有没有一种简单的方法可以让 make 在 msysgit 上运行 我找到了一个link to make exe http repo or cz w msysgit
  • Ant 是否提供了绕过依赖的方法?

    build xml 有一个test and a build目标 这test目标显然取决于build目标 我怎样才能只运行测试目标 暂时地跳过编译 而不修改 build xml 文件 我这样问是因为编译太长 并且通过持续集成服务器保持最新 我
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 是否可以在 Mac OS X 上构建 FreeGLUT?

    我正在做一些关于 OpenGL 的教程 http www arcsynthesis org gltut Basics Tutorial 2001 html那个使用FreeGLUT http freeglut sourceforge net
  • 错误:任务“:app:packageDebug”执行失败 - Java 堆空间

    当我尝试构建 APK 时 我在 Android Studio 日志中收到此错误 错误 任务 app packageDebug 执行失败 Java堆空间 当我尝试在资产目录中构建 350 MB 大小的 sqlite 的 APK 时 就会出现此
  • 构建错误:致命错误:pcre.h:没有这样的文件或目录

    我刚刚安装完 Ubuntu 13 10 我想尝试 Phalcon 当我构建源代码 phalcon so 时 出现以下错误 from home fabrice Downloads cphalcon build 32bits phalcon c
  • Visual Studio:如何正确构建和指定 x64 和 x86 的配置和平台

    使用 Visual Studio 2012 Professional 和 Ultimate 以及所有最新更新 如何正确指定配置和平台以正确构建 x86 和 x64 当您第一次创建 Winforms 应用程序时 Visual Studio 会
  • 生成带有完整路径的 gcc 依赖项

    我有一个简单的项目 看起来像这样 build file1 o one file1 o file2 o depend Makefile src file1 cpp one file1 cpp file2 cpp Makefile 是这样的 G
  • 如何创建一个省略其内容时间戳的 tar 文件?

    有没有办法创建一个 tar省略其文件 目录的 atime ctime mtime 值的文件 我们为什么要这样做 我们的构建过程中有一个步骤 生成一个打包到 tar 文件中的工件目录 我们期望构建步骤是幂等的 给定相同的输入 它会产生exac
  • 使用 Maven 只重建必要的 jar

    是否有可能让所有maven重建依赖于给定模块的所有模块A 也就是说 包括具有依赖于的模块的模块A等等一直到依赖树 我知道我可以做这样的事情https softwareengineering stackexchange com questio
  • 构建 Sling 失败:无法执行目标 org.apache.maven.plugins:maven-archetype-plugin:2.2:integration-test (default-integration-test)

    我正在尝试制作吊索 因为我在大学的一个项目中需要它 谁能告诉我 我该如何解决这个错误 INFO BUILD FAILURE INFO INFO Total time 54 112s INFO Finished at Sun Mar 25 1
  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • 在 CMake 中使用 -isystem 而不是 -I

    在使用 gcc 构建时 CMake 是否有任何方法可以强制通过 include directories 或者可能通过不同的函数 指定的路径使用 isystem 标志而不是 I 标志 See http gcc gnu org onlinedo

随机推荐