祝子祺

Results 8 comments of 祝子祺

> > > tauri [tauri-apps/tauri#8326 (comment)](https://github.com/tauri-apps/tauri/issues/8326#issue-2022070225) mihomo [MetaCubeX/mihomo#870 (comment)](https://github.com/MetaCubeX/mihomo/issues/870#issue-2026083170) > > > > > > @Cyenoch 大佬,我自己尝试编译了一下,提示Unsupported architecture on Linux: loong64,但我看您发的那个第一个issues里有人说好像需要把"loongarch64-unknown-linux-gnu"加入到 Cargo.toml's target就好了,然后第二个issues里有人回复修改component/ebpf/byteorder/byteorder_littleendian.go,component/ebpf/redir/bpf_bpfel.go,component/ebpf/tc/bpf_bpfel.go这几个文件,加入loong64即可编译成功,但我编译可能还不太熟悉,没尝试成功,这个后续你们还会支持loongarch64吗? > > 需要tauri支持才可以,你可能需要自己fork一份 tauri添加loongarch > > clash...

> > tauri和clash meta已支持,目前的问题是当前版本依赖vite 5.0.11所依赖的rollup尚不支持loongarch,采用较低版本的vite4.5.0是可以编译通过的,但我运行时遇到了webkit错误,尚未解决 > > 我看tauri的target里是没有loongarch的 clash meta确实有loong64了 > > 不过我不是很了解rollup为什么不支持loongarch,能否给指个路我瞅瞅 tauri这个[PR](https://github.com/tauri-apps/tauri/pull/8623)被拒绝了,经实验简单添加loongarch的target就能编译,rollup需要rollup.linux-loongarch-gnu.node,这个文件是在x86下交叉编译的,目前还存在问题,可以参考添加ppc64le支持这个[PR](https://github.com/rollup/rollup/pull/5350)

![图片](https://github.com/clash-verge-rev/clash-verge-rev/assets/27466833/3dc28a8e-e1d1-4a1a-a69f-d57eca4a5a38) 今天成功在安同上运行了1.5.8版本,下面是在龙架构上编译对软件包做出的修改: - 降级vite为4.5.2; - 使用修改过的[rquickjs](https://github.com/DelSkayn/rquickjs/pull/248); - 由于mihomo开始对龙架构打新旧世界两种包,check.mjs中下载链接需要做相应变化。 不过,`cargo tauri build`在最后会报错`Error failed to build bundler settings: Unable to determine target-architecture`,不知该如何解决?

1.5.9版本更新,使用boa_engine 代替 rquickjs,可以直接在龙架构上编译了,只需要在src-tauri下cargo update更新一下。 此外,参考https://github.com/vitejs/vite/issues/15122, 发现可以不用降级vite, 只需在package.json中添加 ``` "pnpm": { "overrides": { "rollup": "npm:@rollup/wasm-node" } } ```

目前命名方式造成的主要问题是编译clash-verge-rev的时候抓不到包,无论是abi1/2的命名方式还是loong64/looangarch64的方式,并无法解决这一核心问题,仍然需要编译的时候patch

``` const ARCH_MAP = { "x86_64-pc-windows-msvc": "x64", "i686-pc-windows-msvc": "ia32", "aarch64-pc-windows-msvc": "arm64", "x86_64-apple-darwin": "x64", "aarch64-apple-darwin": "arm64", "x86_64-unknown-linux-gnu": "x64", "i686-unknown-linux-gnu": "ia32", "aarch64-unknown-linux-gnu": "arm64", "armv7-unknown-linux-gnueabihf": "arm", "riscv64gc-unknown-linux-gnu": "riscv64", "loongarch64-unknown-linux-gnu": "loong64", }; ``` 在此处clash-verge-rev的代码中,无论新旧世界都会映射为loong64,这是问题的根源

建议去clash-verge-rev那边讨论如何在check脚本中区分新旧世界

由于sharp未提供龙架构的预编译文件,直接在龙架构上编译会有困难。我看sharp相关的代码只有在windows下才会被调用,因此在龙架构上编译时直接删除了相关代码和依赖,此时可以在龙架构上成功编译运行,参见 https://github.com/ziqi-cn/MusicFreeDesktop/commit/2bc9f41b2a7d455233d532635586c74c2d3c5074 , 是否有可能只在windows平台上引入这个依赖或者采用支持龙架构的jimp替代sharp的功能? 此外,如何在用electron-forge打包时向electron-packager传入参数`--download.mirrorOptions.mirror=https://ftp.loongnix.cn/electron/LoongArch/`?因为在非官方支持的平台如果不传入此参数会报错,目前只能手动打包。