CN116661757A - 一种程序模块化的文件优先编译系统和方法 - Google Patents

一种程序模块化的文件优先编译系统和方法 Download PDF

Info

Publication number
CN116661757A
CN116661757A CN202310919627.6A CN202310919627A CN116661757A CN 116661757 A CN116661757 A CN 116661757A CN 202310919627 A CN202310919627 A CN 202310919627A CN 116661757 A CN116661757 A CN 116661757A
Authority
CN
China
Prior art keywords
source
file
compiling
source file
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202310919627.6A
Other languages
English (en)
Other versions
CN116661757B (zh
Inventor
陈先良
周玲
冯志刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Leyan Technology Co ltd
Original Assignee
Beijing Leyan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Leyan Technology Co ltd filed Critical Beijing Leyan Technology Co ltd
Priority to CN202310919627.6A priority Critical patent/CN116661757B/zh
Publication of CN116661757A publication Critical patent/CN116661757A/zh
Application granted granted Critical
Publication of CN116661757B publication Critical patent/CN116661757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种程序模块化的文件优先编译系统和方法,该系统包括优先权设定工具和源文件修改模块,优先权设定工具用于为指定文件的编辑和/或编译设定优先权;源文件修改模块用于当需要修改某个源文件时,利用优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到源文件修改模块中;源文件修改模块中设置有编译器,源文件修改模块还用于对源文件进行编辑,然后通过编译器进行编译;编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。

Description

一种程序模块化的文件优先编译系统和方法
技术领域
本发明涉及文件编译技术领域,具体涉及一种程序模块化的文件优先编译系统和方法。
背景技术
UEFI(Unified Extensible Firmware Interface的缩写)即统一可扩展固件接口,是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。Aptio是AMI公司基于UEFI规范使用 C语言开发出的全新BIOS产品。在UEFI BIOS固件开发中,涉及到上游厂商不定期的代码库(codebase)更新,OEM厂商需要将原代码库大量的源代码以及编译环境的修改融合到新代码库中来;现有技术中常规的做法是在新的代码库中,将原来的代码和编译环境修改过来的地方,在新代码库中,找到相应的位置,移植进来;这样,当代码修改量越来越大,代码库又频繁更新时,会带来越来越多的重复移植和测试验证,给项目进度带来很大的延时。
发明内容
本发明旨在提供一种程序模块化的文件优先编译系统,所要解决的技术问题至少包括如何节省大量源代码修改的时间,提升UEFI固件的开发效率。
为了实现上述目的,本发明提供一种程序模块化的文件优先编译系统,包括优先权设定工具和源文件修改模块,所述的优先权设定工具用于为指定文件的编辑和/或编译设定优先权;所述的源文件修改模块用于当需要修改某个源文件时,利用所述的优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;所述的源文件修改模块中设置有编译器,所述的源文件修改模块还用于对源文件进行编辑,然后通过所述的编译器进行编译;所述的编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
优选地,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件。
优选地,当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
优选地,所述优先权设定工具能够为待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中。
优选地,当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出。
优选地,将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件。
优选地,当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到原先备份的源文件的最初的目录中,从而实现源文件修改模块的移植和/或调试。
本发明还提供一种程序模块化的文件优先编译方法,包括以下步骤:
第一步、开发能为指定文件的编辑和/或编译设定优先权的优先权设定工具;
第二步、在源代码中,增加一个源文件修改模块,当需要修改某个源文件时,利用该优先权设定工具,将该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;
第三步、在所述的源文件修改模块中,对文件进行编辑,然后进行编译,编译器在编译源文件时,调用该源文件修改模块中所有被修改的文件,默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
优选地,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件;当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
优选地,所述的优先权设定工具的开发包括以下几个步骤:
a).将待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中;
b).当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出;
c).将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件;
d).当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到源文件最初的目录中,从而实现源文件修改模块的移植和/或调试。
有益效果
与现有技术相比,本发明的有益效果是:
本发明所述的程序模块化的文件优先编译系统和方法针对编译器更新时,需要做大量重复性工具和环境变量配置的问题,通过加载开发好的优先权设定工具和源文件修改模块,可以节省开发人员的时间,提升开发效率,也有利于减少因为工具版本造成的目标文件不稳定,或不开机等现象。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的具体实施方式一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明所述的程序模块化的文件优先编译系统的结构示意图。
具体实施方式
在下文中更详细地描述了本发明以有助于对本发明的理解。
如图1所示,本发明所述的程序模块化的文件优先编译系统包括优先权设定工具和源文件修改模块,所述的优先权设定工具用于为指定文件的编辑和/或编译设定优先权;所述的源文件修改模块用于当需要修改某个源文件时,利用所述的优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;所述的源文件修改模块中设置有编译器,所述的源文件修改模块还用于对源文件进行编辑,然后通过所述的编译器进行编译;所述的编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
优选地,所述优先权设定工具的开发包括以下几个步骤:
a).将待修改的源文件设定编辑、编译优先级,并将其映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中;
b).当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出;
c).将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应文件目录信息,备份当前代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件;
d).当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到其最初的目录中,从而实现源文件修改模块的移植,调试。
本发明在现有的代码库中,开发特定的工具(即所述的优先权设定工具),建立一个源代码修改模块(即源文件修改模块),当在源代码中有相应的文件要被修改前,在Aptio统一可扩展固件接口编译环境下,调用该特定的工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件;当代码库更新时,将该源文件修改模块导出,加载到新代码库中,源文件修改模块中的文件根据特定工具的判定,覆盖新代码库中的源文件,从而实现该源文件修改模块中文件的优先编译,从而节省大量源代码修改的时间,提升了UEFI固件开发效率。
本发明还提供一种程序模块化的文件优先编译方法,包括以下步骤:
第一步、开发能为指定文件的编辑和/或编译设定优先权的优先权设定工具;
第二步、在源代码中,增加一个源文件修改模块,当需要修改某个源文件时,利用该优先权设定工具,将该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;
第三步、在所述的源文件修改模块中,对文件进行编辑,然后进行编译,编译器在编译源文件时,调用该源文件修改模块中所有被修改的文件,默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
以上描述了本发明优选实施方式,然其并非用以限定本发明。本领域技术人员对在此公开的实施方案可进行并不偏离本发明范畴和精神的改进和变化。

Claims (10)

1.一种程序模块化的文件优先编译系统,其特征在于,所述的程序模块化的文件优先编译系统包括优先权设定工具和源文件修改模块,所述的优先权设定工具用于为指定文件的编辑和/或编译设定优先权;所述的源文件修改模块用于当需要修改某个源文件时,利用所述的优先权设定工具将需要修改的该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;所述的源文件修改模块中设置有编译器,所述的源文件修改模块还用于对源文件进行编辑,然后通过所述的编译器进行编译;所述的编译器在编译源文件时,会调用该源文件修改模块中所有被修改的文件,会默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
2.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件。
3.根据权利要求2所述的程序模块化的文件优先编译系统,其特征在于,当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
4.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,所述优先权设定工具能够为待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中。
5.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出。
6.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件。
7.根据权利要求1所述的程序模块化的文件优先编译系统,其特征在于,当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到原先备份的源文件的最初的目录中,从而实现源文件修改模块的移植和/或调试。
8.根据权利要求1至7任一项所述的程序模块化的文件优先编译系统的编译方法,其特征在于,包括以下步骤:
第一步、开发能为指定文件的编辑和/或编译设定优先权的优先权设定工具;
第二步、在源代码中,增加一个源文件修改模块,当需要修改某个源文件时,利用该优先权设定工具,将该源文件设定好编辑和/或编译优先权,并将设定好编辑和/或编译优先权的该源文件指定到所述的源文件修改模块中;
第三步、在所述的源文件修改模块中,对文件进行编辑,然后进行编译,编译器在编译源文件时,调用该源文件修改模块中所有被修改的文件,默认将所有被修改的文件映射成原路径中的源文件,然后进行编译。
9. 根据权利要求8所述的编译方法,其特征在于,当在源代码中有相应的文件要被修改前,在Aptio 统一可扩展固件接口编译环境下,调用该优先权设定工具,将相应的待修改的文件制作一个原始版本,放置于特定目录下,将原路径下的文件设定成具有优先编辑与编译权的文件;当代码库更新时,将该源文件修改模块导出,加载到新的代码库中,源文件修改模块中的文件根据所述的优先权设定工具的判定,覆盖新的代码库中的源文件,从而实现该源文件修改模块中文件的优先编译。
10.根据权利要求8所述的编译方法,其特征在于,所述的优先权设定工具的开发包括以下几个步骤:
a).将待修改的源文件设定编辑和/或编译优先级,并将设定好编辑和/或编译优先级的源文件映射到指定的源文件修改模块中,同时备份初始的源文件至指定的文件夹中;
b).当需要将源文件修改模块导出到新的代码库中时,将相应的源文件修改模块从当前的工程目录中导出;
c).将源文件修改模块导入到新的代码库中,并根据源文件修改模块中的相应的文件目录信息,备份当前 代码库中相应目录下的源文件,然后用源文件修改模块中相应的源文件,覆盖当前代码库中相应目录下的源文件;
d).当调试固件时,如果需要还原部分源代码,则删除源文件修改模块中相应的源文件时,提取相应文件的目录,所述的优先权设定工具再根据该目录的信息,找到原先备份的源文件,还原到源文件最初的目录中,从而实现源文件修改模块的移植和/或调试。
CN202310919627.6A 2023-07-26 2023-07-26 一种程序模块化的文件优先编译系统和方法 Active CN116661757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310919627.6A CN116661757B (zh) 2023-07-26 2023-07-26 一种程序模块化的文件优先编译系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310919627.6A CN116661757B (zh) 2023-07-26 2023-07-26 一种程序模块化的文件优先编译系统和方法

Publications (2)

Publication Number Publication Date
CN116661757A true CN116661757A (zh) 2023-08-29
CN116661757B CN116661757B (zh) 2023-10-03

Family

ID=87717374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310919627.6A Active CN116661757B (zh) 2023-07-26 2023-07-26 一种程序模块化的文件优先编译系统和方法

Country Status (1)

Country Link
CN (1) CN116661757B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804682B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology providing compiler-assisted refactoring
CN106648681A (zh) * 2016-12-29 2017-05-10 南京科远自动化集团股份有限公司 一种可编程语言编译装载系统及方法
CN114138281A (zh) * 2021-12-08 2022-03-04 京东科技控股股份有限公司 软件工程的编译方法、装置、设备及介质
CN115033249A (zh) * 2022-06-30 2022-09-09 北京奥星贝斯科技有限公司 文件编译方法以及装置
CN115756451A (zh) * 2022-12-16 2023-03-07 苏州浪潮智能科技有限公司 一种多项目代码文件重用的方法、装置、设备、存储介质
CN115827056A (zh) * 2023-02-01 2023-03-21 北京乐研科技股份有限公司 一种配置多种编译环境变换的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804682B1 (en) * 2002-04-29 2004-10-12 Borland Software Corporation System and methodology providing compiler-assisted refactoring
CN106648681A (zh) * 2016-12-29 2017-05-10 南京科远自动化集团股份有限公司 一种可编程语言编译装载系统及方法
CN114138281A (zh) * 2021-12-08 2022-03-04 京东科技控股股份有限公司 软件工程的编译方法、装置、设备及介质
CN115033249A (zh) * 2022-06-30 2022-09-09 北京奥星贝斯科技有限公司 文件编译方法以及装置
CN115756451A (zh) * 2022-12-16 2023-03-07 苏州浪潮智能科技有限公司 一种多项目代码文件重用的方法、装置、设备、存储介质
CN115827056A (zh) * 2023-02-01 2023-03-21 北京乐研科技股份有限公司 一种配置多种编译环境变换的方法

Also Published As

Publication number Publication date
CN116661757B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
US6374401B1 (en) System, method, and program for updating registry objects with a cross-platform installation program
US5835777A (en) Method of automatically generating a software installation package
US6442754B1 (en) System, method, and program for checking dependencies of installed software components during installation or uninstallation of software
US6687902B1 (en) Method, system, and program for deleting user selected file sets of a program
US6230316B1 (en) Patching rebased and realigned executable files
CN104714788B (zh) 一种软件安装包自动生成的方法及装置
CN106406960B (zh) 一种linux环境中快速部署软件的方法
CN102156643A (zh) 软件集成方法及系统
US6961931B2 (en) Dependency specification using target patterns
US6507948B1 (en) Method, system, and program for generating batch files
US6631521B1 (en) System, method, and program for performing program specific operations during the uninstallation of a computer program from a computer system
EP3698241A1 (en) Using semantic annotations to control compatibility behaviors
CN1193775A (zh) 软只读存储器
US6629316B1 (en) Overriding program properties using a specially designated environment variable statement
CN104503772A (zh) 基于虚拟机的操作系统安装、测试环境搭建的方法和装置
CN111061486B (zh) 一种安卓应用程序增量方法
CN115756451A (zh) 一种多项目代码文件重用的方法、装置、设备、存储介质
CN110659088B (zh) 一种嵌入式环境下程序扩展的方法及系统
CN103645888A (zh) 一种自动构建操作系统的系统及方法
CN116661757B (zh) 一种程序模块化的文件优先编译系统和方法
CN115827056B (zh) 一种配置多种编译环境变换的方法
CN109766125B (zh) 批次间追平冲突的识别方法及装置
CN111913740A (zh) 一种基于fpga的risc-v处理器上的实时操作系统移植方法
CN116028084A (zh) 一种基于OpenStack云平台跨版本热升级的方法、系统及终端
CN115456628A (zh) 基于区块链的智能合约查看方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant