You can change this error message, then print the error message with pcd name, next to check this PCD definition in package DEC file.

 

EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (pcd.TokenSpaceGuidCName, pcd.TokenCName, pcd.DefinitionPosition[0], pcd.DefinitionPosition[1] ))

è

EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found \n" % (pcd.TokenSpaceGuidCName, pcd.TokenCName))

 

Thanks

Liming

发件人: bounce+27952+71125+4905953+8761045@groups.io <bounce+27952+71125+4905953+8761045@groups.io> 代表 Guomin Jiang
发送时间: 202124 8:40
收件人: devel@edk2.groups.io; suchenyu@zoyatek.com.cn
主题: Re: [edk2-devel] UEFI compile error

 

It seem that you use some PCD directly but haven’t declare it in DEC file as below error.

 

File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/DecBuildData.py", line 468, in _GetPcd

    EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (pcd.TokenSpaceGuidCName, pcd.TokenCName, pcd.DefinitionPosition[0], pcd.DefinitionPosition[1] ))

AttributeError: 'StructurePcd' object has no attribute 'DefinitionPosition'

 

Please double confirm it.

Thanks.

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of suchenyu@zoyatek.com.cn
Sent: Wednesday, February 3, 2021 2:11 PM
To: devel <devel@edk2.groups.io>
Subject: [edk2-devel] UEFI compile error

 

Hi,

     The error information occur when I compile a new platform UEFI source, so I need some help to correct this error, please.

    This is the error information under: 

build.py...

 : error C0DE: Unknown fatal error when processing [/home/git/sw-edkII/edkII/SenweiPkg/SenweiPkg.dec]

               

(Please send email to devel@edk2.groups.io for help, attaching following call stack trace!)

 

(Python 2.7.12 on linux2) Traceback (most recent call last):

  File "/home/git/sw-edkII/edkII/BaseTools//BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2637, in Main

    MyBuild.Launch()

  File "/home/git/sw-edkII/edkII/BaseTools//BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2432, in Launch

    self._MultiThreadBuildPlatform()

  File "/home/git/sw-edkII/edkII/BaseTools//BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2239, in _MultiThreadBuildPlatform

    Wa, self.BuildModules = self.PerformAutoGen(BuildTarget,ToolChain)

  File "/home/git/sw-edkII/edkII/BaseTools//BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2103, in PerformAutoGen

    self.Progress

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py", line 43, in __init__

    self._InitWorker(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs)

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py", line 117, in _InitWorker

    self.ProcessPcdType()

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/AutoGen/WorkspaceAutoGen.py", line 264, in ProcessPcdType

    Platform.Pcds

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/DscBuildData.py", line 1198, in Pcds

    self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD))

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/DscBuildData.py", line 1691, in _GetPcd

    PcdValue, DatumType, MaxDatumSize = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4)

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/DscBuildData.py", line 917, in _ValidatePcd

    self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/WorkspaceCommon.py", line 68, in GetDeclaredPcd

    for Pcd in Pkg.Pcds:

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/DecBuildData.py", line 355, in Pcds

    self._Pcds.update(self._GetPcd(MODEL_PCD_DYNAMIC))

  File "/home/git/sw-edkII/edkII/BaseTools/Source/Python/Workspace/DecBuildData.py", line 468, in _GetPcd

    EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (pcd.TokenSpaceGuidCName, pcd.TokenCName, pcd.DefinitionPosition[0], pcd.DefinitionPosition[1] ))

AttributeError: 'StructurePcd' object has no attribute 'DefinitionPosition'

 


suchenyu@zoyatek.com.cn