皮皮网

【彩票商业源码】【主力动态源码】【android 猜拳 源码】lld源码

2024-11-23 08:55:34 来源:新飞飞源码模型

1.Package Manager
2.LLVM(MLIR)安装编译
3.编译TVM遇到 collect2: fatal error: cannot find 'ld'

lld源码

Package Manager

        PackageInstaller是安卓上默认的应用程序,用它来交互式地安装普通包文件。 PackageInstaller提供了用户界面来管理应用或者包文件。PackageInstaller调用一个叫 InstallAppProgress的activity来获取用户发出的指令。InstallAppProgress会请求Package Manager Service,然后通过indalld来安装包文件。源码提供在/packages/apps/PackageInstaller上。

        这个系统守护程序的首要角色是获取来自Package Manager Service的请求,而该请求是通过Linux套接字/dev/socket/installed获得的。

        Installd使用管理员权限执行一系列的步骤来安装APK。

        Package Manger是一个实际上管理应用程序安装、卸载和升级的API。当我们安装APK文件 时,Package Manager会解析APK包文件和显示确认信息。当我们点击OK按钮后,Package Manger会调用一个叫“InstallPackage”的方法,这个方法有四个参数,也就是uri、installFlags、observer和 installPackagename。Package Manger请求服务。

        Package Manger服务运行在系统服务进程中,而安装守护程序(installd)作为一个本地进程运行着,他们都在系统启动时开始运行。

LLVM(MLIR)安装编译

       本文旨在为有兴趣自行安装和编译 LLVM(利用 MLIR 作为后端输出的主要方式)的读者提供一份详细指南。在实际操作过程中,可能会遇到一些理解上的偏差,欢迎指正。由于目标是能在 x 和 RISCV 上运行,所有配置均基于 i7-H 笔记本,彩票商业源码运行 Ubuntu . LTS 系统。

       以下是编译配置的步骤:

       第一步:下载 LLVM 的源码。确保已安装 git,若未安装,请执行 sudo apt-get install git。创建名为 LLVM 的文件夹存放 LLVM 源码,并将源码文件夹命名为 llvm-project。接着,通过 git 下载 LLVM 源码。

       第二步:建立用于 LLVM 编译的文件夹。为了区分编译产生的文件和源文件,建立名为 build 的文件夹。在教程中,每段代码都以 cd 到主文件夹,然后进入工程文件夹的主力动态源码方式进行,便于理解。

       第三步:进入 build 文件夹,完成编译配置。此过程大致分为如何编译、编译什么、为谁编三个部分。具体参数如下:

       如何编译:指定编译器类型、线程数及目标地址。例如,使用 -DLLVM_PARALLEL_COMPILE_JOBS=### 设置并行编译工作数,android 猜拳 源码使用 -DCMAKE_INSTALL_PREFIX=*** 指定安装路径,使用 -DLLVM_CCACHE_BUILD=### 选择是否使用 ccache。选择 C 和 C++ 编译器,如 -DCMAKE_C_COMPILER=### 和 -DCMAKE_CXX_COMPILER=###。启用 LLD 作为链接器以提高效率,可通过 -DLLVM_ENABLE_LLD=ON 实现。

       编译什么:设置编译版本类型,如 Debug、Release 等,使用 -DCMAKE_BUILD_TYPE=###。视频切分 源码同时,通过 -DLLVM_ENABLE_PROJECTS=### 配置需要编译的子项目。

       为谁编:指定目标平台,如 x 和 RISCV,使用 -DLLVM_TARGETS_TO_BUILD=###。可选平台包括但不限于:AArch、AMDGPU、ARM、AVR、BPF、特卖网站源码Hexagon 等。

       注意:在完成编译配置后,执行编译命令。在遇到可能的问题时,检查错误信息并根据需要调整参数。最后,根据实际需求进行文件路径、编译选项等的调整。

       以上步骤和参数配置将帮助您成功安装和编译 LLVM,满足在 x 和 RISCV 上运行的需求。通过本文提供的指南,希望能为您的项目开发提供便利。如有任何疑问或需要进一步的帮助,请随时提问。

编译TVM遇到 collect2: fatal error: cannot find 'ld'

       在尝试编译TVM源码时,我在Ubuntu.上遇到了一个错误,具体是"collect2: fatal error: cannot find 'ld'"。这让我感到困惑,因为我已经确认ld已经被安装。

       通过google搜索,我检查了ld的安装路径,发现它确实存在。我尝试了重新安装binutils,使用命令"sudo apt install --reinstall binutils",但问题仍然没有解决。

       我重新思考问题,发现cmake编译时使用的链接器是lld,而不是官方推荐的ld。这可能是问题的关键。为了解决这个问题,我安装了lld(使用命令"apt-get install lld"),然后重新编译,这次成功了。

       TVM建议使用llvm进行编译,因此链接器使用的是lld。这次的经验让我意识到,确认链接器版本和正确配置cmake参数对于编译过程至关重要。通过这个过程,我学到了如何在遇到编译问题时,系统地排查并解决问题。