macOS下开发Solana链上C++应用时LLVM链接器失效
解决macOS下Solana C++开发中LLVM链接器无法加载libLLVM.dylib的问题
问题描述
在macOS环境开发Solana链上C++应用时,编译链接阶段触发以下错误,多次重装LLVM后问题仍未解决:
./account_logger.so () dyld[61282]: Library not loaded: @rpath/libLLVM.dylib Referenced from: <A9E4BE2A-BF8D-3956-BCA9-E3BC5A6C9F9C> /Users/myusername/.local/share/solana/install/releases/stable-6c6442ff1444dc4404b1de5cb3ffc6fa48e8a73d/solana-release/bin/sdk/sbf/dependencies/platform-tools/llvm/bin/ld.lld Reason: tried: '/Users/myusername/.local/share/solana/install/releases/stable-6c6442ff1444dc4404b1de5cb3ffc6fa48e8a73d/solana-release/bin/sdk/sbf/dependencies/platform-tools/llvm/bin/../lib/libLLVM.dylib' (no such file), '/Users/myusername/.local/share/solana/install/releases/stable-6c6442ff1444dc4404b1de5cb3ffc6fa48e8a73d/solana-release/bin/sdk/sbf/dependencies/platform-tools/llvm/bin/../lib/libLLVM.dylib' (no such file) make: *** [account_logger.so] Abort trap: 6
解决方案
1. 重新安装Solana CLI(修复自带LLVM依赖)
错误中引用的ld.lld是Solana SDK自带的LLVM工具链组件,而非系统LLVM。直接重装系统LLVM无法修复Solana自带组件的缺失问题,需重新安装Solana CLI:
# 卸载现有Solana版本 solana-install uninstall # 安装对应稳定版(替换为你使用的版本号) solana-install init stable-6c6442ff1444dc4404b1de5cb3ffc6fa48e8a73d
2. 手动修正ld.lld的rpath路径
若重新安装Solana后仍缺失libLLVM.dylib,可使用install_name_tool将ld.lld的依赖指向系统中已安装的LLVM库(需先通过Homebrew等方式安装LLVM):
# 假设系统LLVM安装路径为/usr/local/opt/llvm/lib,根据实际情况调整 install_name_tool -change @rpath/libLLVM.dylib /usr/local/opt/llvm/lib/libLLVM.dylib /Users/myusername/.local/share/solana/install/releases/stable-6c6442ff1444dc4404b1de5cb3ffc6fa48e8a73d/solana-release/bin/sdk/sbf/dependencies/platform-tools/llvm/bin/ld.lld
3. 清理编译缓存后重新构建
执行以下命令清理旧编译产物,避免缓存导致的依赖异常:
make clean make
4. 配置环境变量(临时兼容方案)
若上述方法无效,可临时将系统LLVM的库路径加入动态链接库搜索路径(注意macOS SIP可能限制该变量生效):
export DYLD_LIBRARY_PATH=/usr/local/opt/llvm/lib:$DYLD_LIBRARY_PATH
内容的提问来源于stack exchange,提问作者Tiron Raul
相关产品推荐
相关产品推荐

