- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试理解 Linux From Scratch 的概念,并且想知道为什么构建 binutils
、gcc
等需要多次通过。
为什么我们需要 pass1 和 pass2 分开?为什么我们不能在 pass 1 中构建工具,然后使用它们构建 gcc
、glibc
、libstdc++
等。
最佳答案
目标是确保您的构建是一致的,无论您使用哪个编译器来编译您的编译器(以及该编译器有哪些错误)。
假设您正在使用 gcc 3.2 构建 gcc 4.1(我将把 gcc 3.2 称为“stage-0”)。为 gcc 4.1 做 QA 的人没有测试它在使用 gcc 4.1 以外的任何编译器构建时是否正常工作——因此,需要首先构建一个 stage-1 gcc,然后使用那个 stage-1编译第 2 阶段编译器,以防止第 0 阶段编译器中的任何错误影响最终结果。
然后,gcc 的默认编译过程使用 stage-2 编译器构建 stage-3 编译器,并比较两个二进制文件:它们之间的任何差异都可以用作存在证明一个错误。
(当然,这只是一种避免意外错误的有效机制;请参阅经典的 Ken Thompson 论文 Reflections on Trusting Trust,了解如何避免有意的错误这种措施)。
这超越了 gcc 进入整个工具链,因为相同的原则贯穿始终:如果在运行 glibc-x.y 的系统和运行 glibc-x 的系统上构建 glibc-x.y 的结果有任何差异。(y-1 ) 并且您不做额外的传递以确保您在与目标环境相匹配的情况下进行构建,然后重现这些错误(和测试建议的修复)会比其他方式困难得多情况是这样的:没有您的(通常是未公开的)构建环境的任何人都无法重现错误!
关于linux - 为什么从头开始构建 Linux (LFS) 需要多次通过?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883865/
我有一个使用 git-lfs 存储一些大文件的存储库的工作副本。我安装了 git-lfs 二进制文件,但可能没有在工作副本中运行“git lfs install”。当我想在添加 lfs 文件后更新我的
我试图找到一种方法来确定 git 存储库中的文件是否由 git-lfs 正确管理。 到目前为止,我发现比较 git lfs ls-files 和 git ls-files ':(attr:filter
我正在尝试通过以下方式从 git 克隆一个项目: git clone link 并收到了这条消息 remote: Enumerating objects: 24533, done. remote: C
我有一个本地存储库,其中跟踪了一堆 git-lfs 文件。它是使用 git-lfs 版本 2.1.0 创建的。 如果我尝试使用 git-lfs 版本 1.5.6 对该存储库进行结帐,则会收到错误:
我的小组正在与另一个小组合作开展一个项目,我们为合作建立了一个 GitHub 组织。现在协作结束了,我们即将从 GitHub 中删除该组织,我需要为我的团队工作的存储库创建一个本地副本。 我的理解是g
我们在 gitlab 中有一个启用了 git-lfs 的存储库,它工作得很好。它很好地分离了 pdf、电影和其他我们不想进行版本管理的内容。 出现用户错误,有人在未启用 git-lfs 支持的系统上克
我刚刚从 https://github.com/git-lfs/git-lfs/releases 更新了我安装的 Git LFS到最新版本(2.3.0)。但是,当我运行 git lfs version
我刚刚从 https://github.com/git-lfs/git-lfs/releases 更新了我安装的 Git LFS到最新版本(2.3.0)。但是,当我运行 git lfs version
对于 GitHub 上的存储库,GitKraken 显示: This repository requires LFS but you do not have LFS installed. Modify
事情是这样的: 不小心提交了很多本不该提交的文件。 是否执行了 git reset --soft HEAD~2 以返回到事故发生前的提交 修改 gitignore 以忽略文件 再次提交并推送到原点。
在 Bitbucket 服务器上托管了 LFS git 存储库。现在我们需要创建新的 LFS 存储库并使用 LFS 存储将存储库移动到那里。 如何做到这一点? 例如对于普通的 repo 我们可以这样做
fatal: 'lfs' appears to be a git command, but we were not able to execute it. Maybe git-lfs is broke
我尝试了很多命令,但都不起作用: java -jar bfg-1.13.0.jar --convert-to-git-lfs 'lib/**' --no-blob-protection java -j
我有一个相当大的存储库,需要很长时间才能从远程克隆。我决定我可能会从 Git LFS 中受益,所以我去迁移了 repo。但是,在迁移、推送和重新克隆之后,存储库占用的磁盘空间比原始存储库多。 FS 上
我们希望将特定目录从一个 git 存储库移动到另一个。我找到了 these instructions ,直到从远程分支中 pull 出为止,一切顺利;似乎让 git-lfs 跟踪两边的文件会使过程稍微
我们希望将特定目录从一个 git 存储库移动到另一个。我找到了 these instructions ,直到从远程分支中 pull 出为止,一切顺利;似乎让 git-lfs 跟踪两边的文件会使过程稍微
当使用 Git LFS 将大文件推送到 git 存储库时,系统上没有安装 git-lfs 的用户是否可以在不进行任何额外设置的情况下克隆它? 最佳答案 我只是尝试按照您的建议去做。我使用 Git LF
请帮助我理解以下错误消息的含义以及如何遵守其要求。 我想复制一个现有的本地 git 仓库;然后将该副本推送到新创建的远程。 但是我得到以下错误: This repository is configur
故事是这样的,我们在 GitHub 上工作,并且正在使用 GitDesktop 1.0.10。 我们还使用来自 https://github.com/blog/2432-git-lfs-2-3-0-r
这个问题的另一个标题可以是“如何 check out 一个 Git-LFS 管理文件的多个版本?” 我想检查存储在 Git-LFS 中的文件的多个版本。因此,我想在我的工作目录中并排放置此文件的多个版
我是一名优秀的程序员,十分优秀!