我正在使用EDK2和VisualStudio2019。我按照指令在Windows系统上设置EDKII构建环境。在windows命令行上发送以下命令"edksetup.bat重构“后,我收到以下消息。
subprocess not exit successfully
Error while execute command 'nmake all' in direcotry C:\edk2\BaseTools\Source\C\BrotliCompress..。
LINK : fatal error LNK1181: Eingabedatei "brotli\c\tools\brotli.obj" kann nicht geffnet werden.
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.26.28801\bin\HostX86\x86\link.exe"": Rckgabe-Code "0x49d"
Stop.
NMAKE : fatal error U1077: "if": Rückgabe-Code "0x1"
Stop.
NMAKE : fatal error U1077: "if": Rückgabe-Code "0x1"
Stop.是因为VisualStudio2019的兼容性,还是"BrotliCompress“有任何问题?我将标记更改为TOOL_CHAIN_TAG = VS2019x86。但这不起作用。为了实现VS2019兼容性,我还应该更改什么呢?与NMAKE文件有关吗?
--我测试了一个较早版本的EDK2,它可以工作。但问题是,我使用的是VS2019,我想使用edk2 2稳定的201911。较早的版本(edk2 2稳定的201908)只能支持VS2017。在tools_de.txt中,VS2019没有“公共路径宏”。以上误差是使用edk2 2稳定的201911的结果。
发布于 2021-03-03 19:15:28
您需要签出(并构建)各个子模块。
在您的git submodule update --init目录中运行edk2,您应该得到类似于以下内容的输出:
Submodule 'BaseTools/Source/C/BrotliCompress/brotli' (https://github.com/google/brotli) registered for path 'BaseTools/Source/C/BrotliCompress/brotli'
Submodule 'CryptoPkg/Library/OpensslLib/openssl' (https://github.com/openssl/openssl) registered for path 'CryptoPkg/Library/OpensslLib/openssl'
Submodule 'MdeModulePkg/Library/BrotliCustomDecompressLib/brotli' (https://github.com/google/brotli) registered for path 'MdeModulePkg/Library/BrotliCustomDecompressLib/brotli'
Submodule 'MdeModulePkg/Universal/RegularExpressionDxe/oniguruma' (https://github.com/kkos/oniguruma) registered for path 'MdeModulePkg/Universal/RegularExpressionDxe/oniguruma'
Submodule 'RedfishPkg/Library/JsonLib/jansson' (https://github.com/akheron/jansson) registered for path 'RedfishPkg/Library/JsonLib/jansson'
Submodule 'UnitTestFrameworkPkg/Library/CmockaLib/cmocka' (https://git.cryptomilk.org/projects/cmocka.git) registered for path 'UnitTestFrameworkPkg/Library/CmockaLib/cmocka'
Cloning into '<path-to-edk2>/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3'...
Cloning into '<path-to-edk2>/BaseTools/Source/C/BrotliCompress/brotli'...
Cloning into '<path-to-edk2>/CryptoPkg/Library/OpensslLib/openssl'...
Cloning into '<path-to-edk2>/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli'...
Cloning into '<path-to-edk2>/MdeModulePkg/Universal/RegularExpressionDxe/oniguruma'...
Cloning into '<path-to-edk2>/RedfishPkg/Library/JsonLib/jansson'...
Cloning into '<path-to-edk2>/UnitTestFrameworkPkg/Library/CmockaLib/cmocka'...
Submodule path 'ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3': checked out 'b64af41c3276f97f0e181920400ee056b9c88037'
Submodule path 'BaseTools/Source/C/BrotliCompress/brotli': checked out '666c3280cc11dc433c303d79a83d4ffbdd12cc8d'
Submodule path 'CryptoPkg/Library/OpensslLib/openssl': checked out 'e2e09d9fba1187f8d6aafaa34d4172f56f1ffb72'
Submodule path 'MdeModulePkg/Library/BrotliCustomDecompressLib/brotli': checked out '666c3280cc11dc433c303d79a83d4ffbdd12cc8d'
Submodule path 'MdeModulePkg/Universal/RegularExpressionDxe/oniguruma': checked out 'abfc8ff81df4067f309032467785e06975678f0d'
Submodule path 'RedfishPkg/Library/JsonLib/jansson': checked out 'e9ebfa7e77a6bee77df44e096b100e7131044059'
Submodule path 'UnitTestFrameworkPkg/Library/CmockaLib/cmocka': checked out '1cc9cde3448cdd2e000886a26acf1caac2db7cf1'您可能还需要先编译一些东西;我不知道如何在Windows上进行编译,但是make -C <path-to-edk2>/BaseTools/Source/C是Linux的票子。
完成这两项任务后,您应该能够成功地构建EDK2!
发布于 2020-08-06 19:25:43
我从另一个地方开始,也遇到了同样的问题。经过一番探索之后,Brotli压缩模块的源代码似乎已经从树中删除,并在大约4个月前被一个子模块所取代。我对这些东西很陌生,不知道如何将子模块合并到主树中,所以我去了低层。
有两个地方需要Brotli代码:
<your_edk2root>\BaseTools\Source\C\BrotliCompress\brotli\<your_edk2root>\MdeModulePkg\Library\BrotliCustomDecompressLib\brotli\ ( 是您克隆EDK2存储库的地方,包括驱动器号)。Brotli源代码可在https://github.com/google/brotli上使用。
我下载了zip文件,并简单地提取了从brotli主文件夹到前面两个路径中的每一个路径的所有内容(您应该最终得到一个c目录、一个docs目录和每个路径中的一堆文件)。再次从edksetup.bat Rebuild运行,它应该编译、链接和安装。
还没有尝试建立任何UEFI,但期待它!
注意:对于VS2019,TOOL_CHAIN_TAG应该是VS2019,而不是VS2019x86。
https://stackoverflow.com/questions/63015457
复制相似问题