1.Package Manager
2.LLVM(MLIR)安装编译
3.编译TVM遇到 collect2: fatal error: cannot find 'ld'
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 笔记本,dorado5源码运行 Ubuntu . LTS 系统。
以下是编译配置的步骤:
第一步:下载 LLVM 的源码。确保已安装 git,若未安装,请执行 sudo apt-get install git。创建名为 LLVM 的文件夹存放 LLVM 源码,并将源码文件夹命名为 llvm-project。接着,通过 git 下载 LLVM 源码。
第二步:建立用于 LLVM 编译的文件夹。为了区分编译产生的文件和源文件,建立名为 build 的文件夹。在教程中,每段代码都以 cd 到主文件夹,然后进入工程文件夹的源码交易 软文方式进行,便于理解。
第三步:进入 build 文件夹,完成编译配置。此过程大致分为如何编译、编译什么、为谁编三个部分。具体参数如下:
如何编译:指定编译器类型、线程数及目标地址。例如,使用 -DLLVM_PARALLEL_COMPILE_JOBS=### 设置并行编译工作数,钱酷 源码使用 -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=###。android 教育 源码同时,通过 -DLLVM_ENABLE_PROJECTS=### 配置需要编译的子项目。
为谁编:指定目标平台,如 x 和 RISCV,使用 -DLLVM_TARGETS_TO_BUILD=###。可选平台包括但不限于:AArch、AMDGPU、ARM、AVR、BPF、2016 红包源码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参数对于编译过程至关重要。通过这个过程,我学到了如何在遇到编译问题时,系统地排查并解决问题。