Skip to content

macOS 版本打包错误:加载 Linux 库 libdl.so.2 导致启动失败 #28

@traceless929

Description

@traceless929

问题描述

Hagicode Desktop macOS ARM64 版本 (hagicode-0.1.0-beta.16-osx-arm64-nort) 在启动时崩溃,原因是尝试加载 Linux
专属的动态链接库 libdl.so.2

环境信息

  • 版本: hagicode-0.1.0-beta.16-osx-arm64-nort
  • 系统: macOS (Darwin 24.6.0, ARM64)
  • .NET 版本: 10.0.3

错误日志

System.DllNotFoundException: Unable to load shared library 'libdl.so.2' or one of its dependencies.

dlopen(/.../lib/libdl.so.2.dylib, 0x0001): tried: ... (no such file)
dlopen(libdl.so.2.dylib, 0x0001): tried: ... (no such file)

原因分析

libdl.so.2Linux 系统库,在 macOS 上不存在。

这表明 macOS 版本的打包过程中混入了 Linux 原生依赖,可能是以下原因之一:

  1. 编译时目标平台设置错误
  2. 打包脚本将 Linux 库文件误打包进 macOS 版本
  3. 某些 NuGet 包的 native 依赖解析错误

复现步骤

  1. 下载 hagicode-0.1.0-beta.16-osx-arm64-nort
  2. 运行 start.sh
  3. 应用启动后立即崩溃

建议修复

  • 检查 CI/CD 打包流程,确保 macOS 版本使用正确的原生依赖
  • 验证 DllImport 调用是否使用跨平台的库名(如 libdl 而非 libdl.so.2
  • 考虑使用 .NET 的 NativeLibrary API 进行跨平台动态加载

请尽快修复 macOS 版本的打包问题,感谢!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions