Software package compiling method, system and device and medium

By constructing a dependency list and compiling in parallel, the problem of low compilation efficiency of software packages in existing technologies is solved, and a high-efficiency compilation process that directly utilizes dependency information is achieved.

CN121116320APending Publication Date: 2025-12-12ZHEJIANG LNXALL IOT TECHNOLOGY CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202511648932.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-12
Publication Date
2025-12-12

AI Technical Summary

Technical Problem

In existing technologies, the compilation efficiency of software packages is low and the dependency tree is frequently generated and updated, which leads to a decrease in compilation efficiency, especially when there are a large number of software packages.

Method used

By reading the dependency information of each software package in the software development project, a dependency list is constructed, and based on this, software packages that meet the compilation conditions are determined for parallel compilation. The process of deleting, updating, and compiling is repeated until all software packages are completed.

Benefits of technology

Parallel compilation based on dependency information was implemented, which reduced the time overhead of generating dependency trees, improved the compilation efficiency of software packages, and solved the problem of low compilation efficiency in software development.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121116320A_ABST
    Figure CN121116320A_ABST
Patent Text Reader

Abstract

The invention relates to a software package compiling method, system and device and a medium, and the method comprises the steps: reading dependency information of each software package in a software development project, and constructing a dependency list of each software package; based on the dependency list, determining software packages meeting compiling conditions from the software packages to obtain a to-be-compiled software package list, and executing parallel compiling of the software packages in the to-be-compiled software package list; deleting and updating compiled software packages in the to-be-compiled software package list from a dependency list of uncompiled software packages; and on the basis of the deleted and updated dependency list, re-obtaining the to-be-compiled software package list, carrying out parallel compiling, and circularly deleting, updating and carrying out parallel compiling until all the software packages of the software development project are compiled. By means of the method and device, parallel compiling directly based on the software package dependency information is achieved, a large amount of compiling time can be saved, and the problem of how to improve the software package compiling efficiency in the application software development process is solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a software package compilation method, system, apparatus, and medium. Background Technology

[0002] A Software Development Kit (SDK) is a collection of development tools used by software engineers when building specific application software. It typically includes software packages, software frameworks, hardware platforms, operating systems, and other development tools. Building application software requires a large number of software packages, and the dependencies between these packages must be considered during the compilation process; otherwise, compilation errors or failures to compile may occur.

[0003] In existing software package compilation schemes, it is generally necessary to generate a dependency tree (a special form of a directed acyclic graph, DAG) between software packages based on dependency information. This dependency tree is then traversed and indexed to determine the compilation order of the entire application software package, as illustrated in the existing patent application number 201410055020.9. However, when there are a large number of software packages, the computational workload required to generate the dependency tree is enormous. This method of generating the dependency tree before compilation to determine a fixed compilation order leads to two problems: firstly, it reduces the efficiency of software package compilation; secondly, if the software packages change, the dependency tree needs to be regenerated.

[0004] Currently, no effective solution has been proposed for the problem of improving the compilation efficiency of software packages during application software development. Summary of the Invention

[0005] This application provides a software package compilation method, system, apparatus, and medium to at least address the problem of how to improve software package compilation efficiency during application software development in related technologies.

[0006] In a first aspect, embodiments of this application provide a software package compilation method, the method comprising: Read the dependency information of each software package in the software development project and construct the dependency list of each software package; Based on the dependency list, packages that meet the compilation conditions are determined from each package to obtain a list of packages to be compiled, and parallel compilation of the packages in the list of packages to be compiled is performed. The compiled packages in the list of packages to be compiled are deleted from the dependency list of the packages that have never been compiled; Based on the updated dependency list, a new list of packages to be compiled is obtained and compiled in parallel. This process of deletion, updating, and parallel compilation is repeated until all packages in the software development project have been compiled.

[0007] In some embodiments, based on the dependency list, packages that meet the compilation conditions are determined from various packages to obtain a list of packages to be compiled, including: Based on the dependency list, packages that meet the compilation conditions are detected from each package to obtain a list of packages to be compiled. If the dependency list of a package is empty, the package meets the compilation conditions; if the dependency list of a package is not empty, the package does not meet the compilation conditions.

[0008] In some embodiments, the method includes: If no software package meeting the compilation conditions is detected from the various software packages in the software development project, and there are uncompiled software packages, then the uncompiled software packages have a circular dependency problem, and the compilation and build of the software development project will fail with an error.

[0009] In some embodiments, reading the dependency information of each software package in the software development project and constructing the dependency list of each software package includes: The dependency information of each software package in the software development project is read to directly obtain the dependency list of each software package, and based on the dependency list, the dependent list of each software package is calculated.

[0010] In some embodiments, before determining the packages that meet the compilation criteria from the various packages based on the dependency list, the method includes: Based on the dependency list and the dependent list, the system detects whether there is a circular dependency problem among the software packages in the software development project. If so, it locates the abnormal software package with the circular dependency problem and returns the information of the abnormal software package.

[0011] In some embodiments, updating the dependency list of compiled packages in the list of packages to be compiled and uncompiled packages includes: For the compiled packages in the list of packages to be compiled, locate the uncompiled packages with dependencies from the dependency list of the compiled packages, and delete and update the dependency list of the located packages.

[0012] In some embodiments, detecting whether a circular dependency exists between software packages in the software development project, based on the dependency list and the dependent list, includes: Each software package in the software development project is checked one by one. If the dependency list and the dependent list of the currently checked software package contain the same software package, then there is a circular dependency problem between the currently checked software package and the same software package.

[0013] In a second aspect, embodiments of this application provide a software package compilation system, the system being used to execute the method described in the first aspect above, the system comprising a list construction module, a parallel compilation module, a deletion and update module, and a loop execution module; The list building module is used to read the dependency information of each software package in the software development project and build a dependency list of each software package. The parallel compilation module is used to determine the software packages that meet the compilation conditions from each software package according to the dependency list, so as to obtain a list of software packages to be compiled, and to perform parallel compilation of the software packages in the list of software packages to be compiled. The deletion and update module is used to delete and update the dependency list of the compiled software packages in the list of software packages to be compiled from the dependency list of the uncompiled software packages. The loop execution module is used to obtain a new list of packages to be compiled based on the updated dependency list and perform parallel compilation, repeating the deletion, update and parallel compilation until all packages in the software development project have been compiled.

[0014] Thirdly, embodiments of this application provide an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the method described in the first aspect above.

[0015] Fourthly, embodiments of this application provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the method described in the first aspect above.

[0016] Compared to related technologies, the present application provides a software package compilation method, system, apparatus, and medium. This method reads the dependency information of each software package in a software development project to construct a dependency list for each package. Based on the dependency list, it identifies packages that meet the compilation conditions from each package to obtain a list of packages to be compiled, and performs parallel compilation of the packages in the list. It then deletes and updates the dependency list of uncompiled packages from the compiled packages in the list. Based on the updated dependency list, it re-obtains the list of packages to be compiled and performs parallel compilation. This process of deletion, updating, and parallel compilation is repeated until all software packages in the software development project are compiled. This achieves parallel compilation directly based on package dependency information. Since the dependency information is statically stored in the project, reading it does not take much time. Compared to the existing method of generating a dependency tree based on dependency information to determine the compilation order and then compiling sequentially, this undoubtedly saves a significant amount of time and solves the problem of how to improve the efficiency of software package compilation during application software development. Attached Figure Description

[0017] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments of this application and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings: Figure 1 This is a flowchart of the software package compilation method according to an embodiment of this application; Figure 2 This is a flowchart illustrating the software package compilation method according to an embodiment of this application; Figure 3 This is a schematic diagram of the internal structure of an electronic device according to an embodiment of this application. Detailed Implementation

[0018] To make the objectives, technical solutions, and advantages of this application clearer, the application is described and illustrated below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application. All other embodiments obtained by those skilled in the art based on the embodiments provided in this application without inventive effort are within the scope of protection of this application.

[0019] Obviously, the accompanying drawings described below are merely some examples or embodiments of this application. Those skilled in the art can apply this application to other similar scenarios based on these drawings without any inventive effort. Furthermore, it is understood that although the efforts made in this development process may be complex and lengthy, for those skilled in the art related to the content disclosed in this application, any changes to design, manufacturing, or production based on the technical content disclosed in this application are merely conventional technical means and should not be construed as insufficient disclosure of the content of this application.

[0020] In this application, the reference to "embodiment" means that a specific feature, structure, or characteristic described in connection with an embodiment may be included in at least one embodiment of this application. The appearance of this phrase in various places in the specification does not necessarily refer to the same embodiment, nor is it a separate or alternative embodiment that is mutually exclusive with other embodiments. It will be explicitly and implicitly understood by those skilled in the art that the embodiments described in this application may be combined with other embodiments without conflict.

[0021] Unless otherwise defined, the technical or scientific terms used in this application shall have the ordinary meaning understood by one of ordinary skill in the art to which this application pertains. The terms “a,” “an,” “an,” “the,” and similar words used in this application do not indicate quantity limitation and may indicate singular or plural. The terms “comprising,” “including,” “having,” and any variations thereof used in this application are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or device that includes a series of steps or modules (units) is not limited to the listed steps or units, but may also include steps or units not listed, or may include other steps or units inherent to these processes, methods, products, or devices. The terms “connected,” “linked,” “coupled,” and similar words used in this application are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. “Multiple” used in this application refers to two or more. “And / or” describes the relationship between related objects, indicating that three relationships may exist; for example, “A and / or B” can represent: A alone, A and B simultaneously, and B alone. The character " / " generally indicates that the preceding and following objects are in an "or" relationship. The terms "first," "second," and "third" used in this application are merely to distinguish similar objects and do not represent a specific ordering of the objects.

[0022] This application provides a software package compilation method. Figure 1 This is a flowchart of the software package compilation method according to an embodiment of this application, as follows: Figure 1 As shown, the method includes the following steps: Step S102: Read the dependency information of each software package in the software development project and construct the dependency list of each software package; To illustrate, suppose the software development project requires software packages A, B, C, D, and E, with the following dependencies: package A depends on B and C, package B depends on D and E, and package C depends on E. This dependency information is statically stored in the software development project, and reading it doesn't take much time. The dependency list constructed in step S102 mainly contains this dependency information: package A's dependency list {B, C}, package B's dependency list {D, E}, package C's dependency list {E}, package D's dependency list {null}, and package E's dependency list {null}, where null represents an empty value. In other words, reading directly provides the dependency lists of each package and allows for parallel compilation. Compared to the existing method of generating a dependency tree based on dependency information to determine the compilation order and then compiling sequentially, this undoubtedly saves a significant amount of time.

[0023] Step S104: Based on the dependency list, determine the packages that meet the compilation conditions from each package to obtain the list of packages to be compiled, and perform parallel compilation of the packages in the list of packages to be compiled. Step S104 specifically includes the following steps: Step S1041, Figure 2 This is a flowchart illustrating the software package compilation method according to an embodiment of this application, as shown below. Figure 2 As shown, based on the dependency list, packages that meet the compilation conditions are detected from each package to obtain a list of packages to be compiled. If the dependency list of a package is empty, the package meets the compilation conditions; if the dependency list of a package is not empty, the package does not meet the compilation conditions.

[0024] To illustrate, suppose the software development project has software packages A, B, C, D, and E. The dependency list of software package A is {B, C}, the dependency list of software package B is {D, E}, the dependency list of software package C is {E}, the dependency list of software package D is {null}, and the dependency list of software package E is {null}. Then, the software packages that meet the compilation conditions in the first round are software packages D and E.

[0025] Step S1042, as follows Figure 2 As shown, parallel compilation of packages in the list of packages to be compiled is performed.

[0026] Step S1043, as follows Figure 2As shown, if no software package that meets the compilation conditions is detected from the various software packages in the software development project, and there are uncompiled software packages, then the uncompiled software packages have a circular dependency problem, and the compilation and build of the software development project will fail and an error will be returned.

[0027] It should be noted that existing compilation methods that build dependency trees can predict whether circular dependencies (e.g., package A depends on package B, and package B depends on package A) will occur during the tree construction process, since the tree itself is a special type of directed acyclic graph (DAG). However, the dependency list-based compilation method in this application, while saving compilation time and greatly improving efficiency, cannot predict the existence of circular dependencies. Therefore, the detection of circular dependencies in step S1043 is performed dynamically during the compilation process. Figure 2 As shown, when there are still multiple packages that need to be compiled, but no package meets the compilation conditions, a circular dependency problem between packages will inevitably occur.

[0028] Step S106: Delete and update the dependency list of the packages that have been compiled in the list of packages to be compiled and the packages that have not been compiled. For example, in step S1041, the software packages that meet the compilation conditions in the first round are software packages D and E. After software packages D and E are compiled in parallel in step S1042, step S106 deletes and updates the dependency lists of software packages D and E from the uncompiled software packages. That is, it deletes and updates the dependency list {D, E} of software package B to obtain the deleted and updated dependency list {null}; it deletes and updates the dependency list {E} of software package C to obtain the deleted and updated dependency list {null}.

[0029] Step S108: Based on the updated dependency list, obtain a new list of packages to be compiled and perform parallel compilation. Repeat the deletion, updating and parallel compilation until all packages in the software development project have been compiled.

[0030] Examples are needed, such as Figure 2 As shown, after deleting and updating the dependency list {B, C} of package A, the dependency list {null} of package B, and the dependency list {null} of package C, the packages that meet the compilation conditions are identified in the second round of parallel compilation. This process of parallel compilation and deletion / updating is repeated until all packages in the software development project have been compiled.

[0031] Through the steps described above in this application embodiment, parallel compilation based directly on package dependency information is achieved. Since the dependency information is statically stored in the project, reading it does not take much time. Compared with the existing method of generating a dependency tree based on the dependency information to determine the compilation order and then compiling in sequence, it will undoubtedly save a lot of time and solve the problem of how to improve the compilation efficiency of packages in the application software development process.

[0032] This application provides a software package compilation method. Specifically, step S102 in the above embodiments is as follows: The dependency information of each software package in the software development project is read to directly obtain the dependency list of each software package, and based on the dependency list, the dependent list of each software package is calculated.

[0033] To illustrate, suppose a software development project requires software packages A, B, C, D, and E, with the following dependencies: package A depends on B and C, package B depends on D and E, and package C depends on E. This dependency information is statically stored within the software development project and can be retrieved relatively quickly. The main content of the constructed dependency list is this dependency information. The dependent list is derived by aggregating the dependency lists (e.g., B's dependent list is initially empty; if B is present in A's dependency list, then A is added to B's dependent list). Specifically: Package A's dependency list {B, C}, Package B's dependency list {D, E}, Package C's dependency list {E}, Package D's dependency list {null}, Package E's dependency list {null}; Package A's dependency list {null}, Package B's dependency list {A}, Package C's dependency list {A}, Package D's dependency list {B}, Package E's dependency list {B, C}.

[0034] If step S102 constructs the dependency list, then, optionally, before step S104 in the above embodiment, it is possible to detect whether there is a circular dependency problem between the software packages of the software development project. Specifically, based on the dependency list and the dependency list, it is detected whether there is a circular dependency problem between the software packages of the software development project. If there is, the abnormal software package with the circular dependency problem is located and the information of the abnormal software package is returned.

[0035] Specifically, each software package in the software development project is checked one by one. If the dependency list and the dependent list of the currently checked package contain the same package, then there is a circular dependency problem between the currently checked package and the same package.

[0036] It is worth noting that for abnormal software packages with circular dependencies, there must be identical software packages in their dependency list and dependent list. For example, if software package F has a dependency list {G, T} and a dependent list {T, M}, and software package T exists in both lists, then there must be a circular dependency between software package F and software package T, making it an abnormal software package.

[0037] If step S102 constructs a dependency list, then step S106 in the above embodiment may optionally: for the compiled software packages in the list of software packages to be compiled, locate the uncompiled software packages with dependencies from the dependency list of the compiled software packages, and delete and update the dependency list of the located software packages.

[0038] To illustrate, after the first round of compilation of packages D and E, which meet the compilation conditions, is completed in parallel in step S1042 above, based on the dependency list {B} of package D and the dependency list {B, C} of package E, the uncompiled packages B and C with dependencies are located. Packages D and E are removed from the dependency list {D, E} of package B to obtain the updated dependency list {null}; package E is removed from the dependency list {E} of package C to obtain the updated dependency list {null}.

[0039] It should be noted that the steps shown in the above process or in the flowchart of the accompanying figures can be executed in a computer system such as a set of computer-executable instructions, and although a logical order is shown in the flowchart, in some cases the steps shown or described may be executed in a different order than that shown here.

[0040] This application provides a software package compilation system for executing the method described in the first aspect above. The system includes a list construction module, a parallel compilation module, a deletion and update module, and a loop execution module. The list building module is used to read the dependency information of each software package in the software development project and build a dependency list for each software package. The parallel compilation module is used to determine the packages that meet the compilation conditions from the various packages based on the dependency list, so as to obtain the list of packages to be compiled, and to perform parallel compilation of the packages in the list of packages to be compiled. The delete update module is used to delete and update the dependency list of packages that have been compiled from the list of packages to be compiled; The loop execution module is used to obtain a new list of packages to be compiled based on the updated dependency list and perform parallel compilation. It repeats the deletion, update, and parallel compilation until all packages in the software development project have been compiled.

[0041] The list building module, parallel compilation module, deletion and update module, and loop execution module in this application embodiment realize parallel compilation directly based on package dependency information. Since the dependency information is statically stored in the project, reading it does not take much time. Compared with the existing method of generating a dependency tree based on the dependency information to determine the compilation order and then compiling in order, it will undoubtedly save a lot of time and solve the problem of how to improve the compilation efficiency of packages in the application software development process.

[0042] It should be noted that the above modules can be functional modules or program modules, and can be implemented through software or hardware. For modules implemented through hardware, the above modules can reside in the same processor; or the above modules can be located in different processors in any combination.

[0043] This embodiment provides an electronic device including a memory and a processor. The memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.

[0044] Optionally, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.

[0045] Optionally, the electronic device may further include a processor, memory, network interface, display screen, and input device connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system and computer programs. The internal memory provides an environment for the operation of the operating system and computer programs in the non-volatile storage media. The network interface is used to communicate with external terminals via a network connection. When the computer program is executed by the processor, it implements a software package compilation method. The display screen may be a liquid crystal display (LCD) or an e-ink display. The input device may be a touch layer covering the display screen, buttons, a trackball, or a touchpad mounted on the device's casing, or an external keyboard, touchpad, or mouse.

[0046] It should be noted that the specific examples in this embodiment can refer to the examples described in the above embodiments and optional implementations, and will not be repeated here.

[0047] Furthermore, in conjunction with the software package compilation methods in the above embodiments, this application embodiment can provide a storage medium for implementation. This storage medium stores a computer program; when executed by a processor, the computer program implements any of the software package compilation methods in the above embodiments.

[0048] In one embodiment, Figure 3 This is a schematic diagram of the internal structure of an electronic device according to an embodiment of this application, such as... Figure 3 As shown, an electronic device is provided, which can be a server, and its internal structure diagram can be as follows. Figure 3 As shown, the electronic device includes a processor, a network interface, internal memory, and non-volatile memory connected via an internal bus. The non-volatile memory stores an operating system, computer programs, and a database. The processor provides computing and control capabilities, the network interface communicates with external terminals via a network connection, the internal memory provides an environment for the operation of the operating system and computer programs, the computer programs are executed by the processor to implement a software package compilation method, and the database stores data.

[0049] Those skilled in the art will understand that Figure 3 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the electronic device to which the present application is applied. A specific electronic device may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.

[0050] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. This computer program can be stored in a non-volatile computer-readable storage medium. When executed, the computer program can include the processes of the embodiments of the above methods. Any references to memory, storage, databases, or other media used in the embodiments provided in this application can include non-volatile and / or volatile memory. Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), or flash memory. Volatile memory may include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in a variety of forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), dual data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), RAMbus direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0051] Those skilled in the art should understand that the technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments have been described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.

[0052] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the invention patent. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this patent application should be determined by the appended claims.

Claims

1. A software package compilation method, characterized in that, The method includes: Read the dependency information of each software package in the software development project and construct the dependency list of each software package; Based on the dependency list, packages that meet the compilation conditions are determined from each package to obtain a list of packages to be compiled, and parallel compilation of the packages in the list of packages to be compiled is performed. The compiled packages in the list of packages to be compiled are deleted from the dependency list of the packages that have never been compiled; Based on the updated dependency list, a new list of packages to be compiled is obtained and compiled in parallel. This process of deletion, updating, and parallel compilation is repeated until all packages in the software development project have been compiled.

2. The method according to claim 1, characterized in that, Based on the dependency list, packages that meet the compilation conditions are identified from each package to obtain a list of packages to be compiled, including: Based on the dependency list, packages that meet the compilation conditions are detected from each package to obtain a list of packages to be compiled. If the dependency list of a package is empty, the package meets the compilation conditions; if the dependency list of a package is not empty, the package does not meet the compilation conditions.

3. The method according to claim 2, characterized in that, The method includes: If no software package meeting the compilation conditions is detected from the various software packages in the software development project, and there are uncompiled software packages, then the uncompiled software packages have a circular dependency problem, and the compilation and build of the software development project will fail with an error.

4. The method according to claim 1, characterized in that, Read the dependency information of each software package in the software development project and construct the dependency list of each package, including: The dependency information of each software package in the software development project is read to directly obtain the dependency list of each software package, and based on the dependency list, the dependent list of each software package is calculated.

5. The method according to claim 4, characterized in that, Before determining which packages meet the compilation requirements from among the packages based on the dependency list, the method includes: Based on the dependency list and the dependent list, the system detects whether there is a circular dependency problem among the software packages in the software development project. If so, it locates the abnormal software package with the circular dependency problem and returns the information of the abnormal software package.

6. The method according to claim 4, characterized in that, The process of deleting and updating the dependency list of compiled packages from the list of packages to be compiled, and of packages that have never been compiled, includes: For the compiled packages in the list of packages to be compiled, locate the uncompiled packages with dependencies from the dependency list of the compiled packages, and delete and update the dependency list of the located packages.

7. The method according to claim 4, characterized in that, Based on the dependency list and the dependent list, detecting whether there is a circular dependency problem between software packages in the software development project includes: Each software package in the software development project is checked one by one. If the dependency list and the dependent list of the currently checked software package contain the same software package, then there is a circular dependency problem between the currently checked software package and the same software package.

8. A software package compilation system, characterized in that, The system is used to perform the method according to any one of claims 1 to 7, and the system includes a list construction module, a parallel compilation module, a deletion and update module, and a loop execution module; The list building module is used to read the dependency information of each software package in the software development project and build a dependency list of each software package. The parallel compilation module is used to determine the software packages that meet the compilation conditions from each software package according to the dependency list, so as to obtain a list of software packages to be compiled, and to perform parallel compilation of the software packages in the list of software packages to be compiled. The deletion and update module is used to delete and update the dependency list of the compiled software packages in the list of software packages to be compiled from the dependency list of the uncompiled software packages. The loop execution module is used to obtain a new list of packages to be compiled based on the updated dependency list and perform parallel compilation, repeating the deletion, update and parallel compilation until all packages in the software development project have been compiled.

9. An electronic device comprising a memory and a processor, characterized in that, The memory stores a computer program, and the processor is configured to run the computer program to perform the method of any one of claims 1 to 7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the method as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Program compiling method and related device

    CN103870310B

  • Method and devicefor constructing Linux system

    CN112214221A

  • Automatic software package compiling method

    CN112286534A

  • Source code parallel compiling method and system

    CN115048106A

  • Software package processing method and device, computer equipment and storage medium

    CN120256460A