Ubuntu 20.04下Swift无法检测到zlib的问题求助
Ubuntu 20.04下Swift 5.5.3/5.7提示“zlib is not available.”的解决办法
问题分析
虽然系统里已经有zlib运行时库,且C++程序能正常链接使用,但Swift的编译链或包管理器可能没正确识别zlib的开发文件路径,才会触发这个警告。
解决步骤
安装zlib开发包
系统默认可能只装了运行时库,Swift编译时需要头文件和开发级链接库,执行以下命令安装:sudo apt-get update && sudo apt-get install zlib1g-dev配置Swift的库搜索路径
临时让Swift识别zlib路径,可执行:export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH要永久生效的话,把上面的命令加到
~/.bashrc(bash用户)或~/.zshrc(zsh用户)末尾,再执行source ~/.bashrc或source ~/.zshrc刷新配置。Swift Package Manager项目适配
如果是SPM管理的项目,在Package.swift里添加系统库依赖配置,让SPM明确找到zlib:let package = Package( name: "YourPackageName", dependencies: [], targets: [ .target( name: "YourTargetName", dependencies: [ .systemLibrary( name: "zlib", providers: [.apt(["zlib1g-dev"])] ) ] ), ] )之后重新执行
swift build构建项目。单个Swift文件编译时指定链接
用swiftc编译单个文件时,手动加-lz参数链接zlib:swiftc your_swift_file.swift -lz
验证
完成操作后,重新运行Swift程序或构建项目,检查“zlib is not available.”警告是否消失。
内容的提问来源于stack exchange,提问作者efr
相关产品推荐
相关产品推荐

