[已解决]WSL+ubuntu18+kivy+Buildozer打包时 [WARNING]: lld not found 解决办法

 打包时遇到这个问题,其实是比较懵逼的. 网上收不到对应的帖子

[WARNING]: lld not found, linking without it. Consider installing lld if linker errors occur.

那么lld是啥呢
https://lld.llvm.org/ 官网,  LLD is a linker from the LLVM project that is a drop-in replacement for system linkers and runs much faster than them. It also provides features that are useful for toolchain developers.
大致意思就是用lld build起来速度快很多.

ProgramOutput sizeGNU ldGNU gold w/o threadsGNU gold w/threadslld w/o threadslld w/threads
ffmpeg dbg92 MiB1.72s1.16s1.01s0.60s0.35s
mysqld dbg154 MiB8.50s2.96s2.68s1.06s0.68s
clang dbg1.67 GiB104.03s34.18s23.49s14.82s5.28s
chromium dbg1.14 GiB209.05s [1]64.70s60.82s27.60s16.70s

突然想试试能否用apt install lld一下. 结果真可以.如下:

安装过程中可以看出lld是和llvm是一起的

lijl@SH-D144:/mnt/c/Users/SH-D144$ apt install lld  

Unpacking llvm-6.0-runtime (1:6.0-1ubuntu2) ...                                                                         Selecting previously unselected package llvm-6.0.                                                                       Preparing to unpack .../3-llvm-6.0_1%3a6.0-1ubuntu2_amd64.deb ...                                                       Unpacking llvm-6.0 (1:6.0-1ubuntu2) ...                                                                                 Selecting previously unselected package llvm-6.0-dev.                                                                   Preparing to unpack .../4-llvm-6.0-dev_1%3a6.0-1ubuntu2_amd64.deb ...                                                   Unpacking llvm-6.0-dev (1:6.0-1ubuntu2) ...                                                                             Selecting previously unselected package lld-6.0.                                                                        Preparing to unpack .../5-lld-6.0_1%3a6.0-1ubuntu2_amd64.deb ...                                                        Unpacking lld-6.0 (1:6.0-1ubuntu2) ...                                                                                  Selecting previously unselected package lld.                                                                            Preparing to unpack .../6-lld_1%3a6.0-41~exp5~ubuntu1_amd64.deb ...                                                     Unpacking lld (1:6.0-41~exp5~ubuntu1) ...                                                                               Setting up binfmt-support (2.1.8-2) ...                                                                                 Created symlink /etc/systemd/system/multi-user.target.wants/binfmt-support.service → /lib/systemd/system/binfmt-support.service.                                                                                                               invoke-rc.d: could not determine current runlevel                                                                       Setting up libllvm6.0:amd64 (1:6.0-1ubuntu2) ...                                                                        Setting up llvm-6.0-runtime (1:6.0-1ubuntu2) ...                                                                        Setting up llvm-6.0 (1:6.0-1ubuntu2) ...                                                                                Setting up llvm-6.0-dev (1:6.0-1ubuntu2) ...                                                                            Setting up lld-6.0 (1:6.0-1ubuntu2) ...                                                                                 Setting up lld (1:6.0-41~exp5~ubuntu1) ...                                                                              Processing triggers for ureadahead (0.100.0-21) ...                                                                     Processing triggers for libc-bin (2.27-3ubuntu1.4) ...                                                                  Processing triggers for systemd (237-3ubuntu10.44) ...                                                                  Processing triggers for man-db (2.8.3-2ubuntu0.1) ...                                                                   

 

WSL2环境下使用KivyBuildozer打包Python应用并实现打包过程中的实预览功能,涉及多个步骤的配置与优化。以下是详细的说明: ### 环境准备 首先确保WSL2已经正确安装,并且具备Python环境。推荐使用Ubuntu发行版,因为它对KivyBuildozer的支持较好。可以通过以下命令安装必要的依赖项: ```bash sudo apt update sudo apt install -y python3-pip python3-setuptools python3-dev git ``` ### 安装Kivy Kivy是开发跨平台应用程序的核心框架。可以通过pip安装Kivy: ```bash pip3 install kivy ``` 如果遇到性能问题或者需要特定版本的Kivy,可以参考官方文档进行源码编译[^1]。 ### 安装Buildozer Buildozer是一个用于打包Kivy应用程序的工具,支持Android、iOS等平台。安装Buildozer及其依赖项: ```bash pip3 install buildozer ``` 安装完成后,需要初始化一个`buildozer.spec`文件,这是Buildozer的配置文件: ```bash buildozer init ``` 此命令会在当前目录下生成一个`buildozer.spec`文件,可以根据需求对其进行编辑。 ### 配置Android SDK和NDK 为了在WSL2中打包Android应用,需要配置Android SDK和NDK。可以通过以下步骤完成: 1. 下载并解压Android SDK和NDK到合适的位置。 2. 设置环境变量,将SDK和NDK的路径添加到系统环境变量中。 3. 使用SDK Manager安装所需的Android平台和构建工具。 ### 实现实预览功能 实预览功能通常指的是在开发过程中能够即查看界面的变化。Kivy本身提供了`kivy.app.App`类,可以在桌面环境中直接运行以查看应用界面。为了在打包过程中实现类似实预览的功能,可以考虑以下方法: 1. **使用Kivy的桌面模式**:在开发阶段,直接运行Python脚本以查看应用界面。例如: ```bash python3 main.py ``` 这种方式可以快速测试UI布局和交互逻辑。 2. **使用Buildozer的调试模式**:Buildozer提供了一个调试模式,可以在设备上实查看应用的日志输出。启动调试模式: ```bash buildozer android debug run ``` 此命令会将应用部署到连接的Android设备上,并显示实日志。 3. **使用ADB工具**:Android Debug Bridge (ADB) 是一个强大的命令行工具,可以用来调试Android设备上的应用。通过ADB,可以实查看应用的日志输出: ```bash adb logcat ``` ### 打包APK 当开发和调试完成后,可以使用Buildozer打包APK文件: ```bash buildozer android release sign ``` 此命令会生成一个签名的APK文件,可以直接安装到Android设备上。 ### 相关问题 - 如何在WSL2中配置Android SDK和NDK? - 如何使用Buildozer自定义打包APK的配置? - 如何在Kivy中实现复杂的UI布局?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值