我按照这里的分步文章进行操作:UEFI/EFK2。一切都运行良好,直到我需要实际构建它。在“构建 MdeModulePkg 模块包”段落中,描述说:只需输入 build:
bash$ build
但是我的 Ubuntu 12.04.1 LTS 说:
No command 'build' found, did you mean:
Command 'xbuild' from package 'mono-xbuild' (main)
Command 'guild' from package 'guile-2.0-libs' (universe)
Command 'sbuild' from package 'sbuild' (universe)
Command 'bwild' from package 'bacula-director-common' (main)
Command 'buildd' from package 'buildd' (universe)
build: command not found
也许有人知道我究竟可以在哪里找到这个神秘的命令?
答案1
解决方案是使用
bash:~/src/edk2$ source edksetup.sh
bash:~/src/edk2$ build
edksetup.sh 中的 export 命令的效果并不反映在主 bash shell 中,而是反映在为执行它而生成的子 shell 中。“source”指示它在当前 shell 中运行脚本。
答案2
只要您安装了构建依赖项并遵循导游没错,我认为你只需要确保在edk2
发出build
命令时处于目录中。如果你build
在任何其他目录中输入命令,你将收到你收到的错误。
此外,build
仅当您运行edksetup.sh
并编辑了正确的构建参数 ~/src/edk2/Conf/target.txt
(或任何路径)时,该命令才会起作用。
这是从目录运行时构建命令的初始输出edk2
(根据指南调整文件):
mik@Acer ~/src/edk2$ build
Build environment: Linux-3.2.0-32-generic-i686-with-Ubuntu-12.04-precise
Build start time: 00:45:15, Oct.22 2012
WORKSPACE = /home/mike/src/edk2
ECP_SOURCE = /home/mike/src/edk2/EdkCompatibilityPkg
EDK_SOURCE = /home/mike/src/edk2/EdkCompatibilityPkg
EFI_SOURCE = /home/mike/src/edk2/EdkCompatibilityPkg
EDK_TOOLS_PATH = /home/mike/src/edk2/BaseTools
Architecture(s) = IA32
Build target = DEBUG
Toolchain = GCC46
Active Platform = /home/mike/src/edk2/MdeModulePkg/MdeModulePkg.dsc
Processing meta-data ........... done!
然后它继续编译所有需要的内容。