HarmonyOS鸿蒙Next中仓颉在Linux下运行找不到libcangjie-runtime.so
HarmonyOS鸿蒙Next中仓颉在Linux下运行找不到libcangjie-runtime.so
在欧拉操作系统上运行编译后的hello文件出错,找不到libcangjie-runtime.so:
./hello: error while loading shared libraries: libcangjie-runtime.so: cannot open shared object file: No such file or directory
链接情况:
# lld hello
linux-vdso.so.1 (0x00007ffcbae78000)
libcangjie-runtime.so => not found
libsecurec.so => /usr/lib64/libsecurec.so (0x00007f0584d60000)
libm.so.6 => /usr/lib64/libm.so.6 (0x00007f0584c84000)
libc.so.6 => /usr/lib64/libc.so.6 (0x00007f0584a83000)
/lib64/ld-linux-x86-64.so.2 (0x00007f0584e00000)
操作系统版本:
# uname -a
Linux hcss-ecs-d585 5.10.0-182.0.0.95.r2673_211.hce2.x86_64 #1 SMP Sat Mar 15 08:57:21 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/os-release
NAME="Huawei Cloud EulerOS"
VERSION="2.0 (x86_64)"
ID="hce"
VERSION_ID="2.0"
PRETTY_NAME="Huawei Cloud EulerOS 2.0 (x86_64)"
ANSI_COLOR="0;31"
尝试将linux_x86_64_llvm目录添加到PATH也不能解决该问题:
export PATH="/opt/tools/cangjie/bin:/opt/tools/cangjie/tools/bin:/opt/tools/cangjie/lib/linux_x86_64_llvm:$PATH"
更多关于HarmonyOS鸿蒙Next中仓颉在Linux下运行找不到libcangjie-runtime.so的实战教程也可以访问 https://www.itying.com/category-93-b0.html
升级到1.0版,配置一下运行环境可以了
更多关于HarmonyOS鸿蒙Next中仓颉在Linux下运行找不到libcangjie-runtime.so的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
鸿蒙Next中仓颉在Linux下运行找不到libcangjie-runtime.so
的问题,可能是由于动态链接库路径未正确配置导致。检查以下两点:
-
确保
libcangjie-runtime.so
已正确安装到系统库目录(如/usr/lib
或/usr/local/lib
)或指定的LD_LIBRARY_PATH
路径中。 -
运行
ldconfig
命令更新动态链接库缓存,或通过export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/library
临时添加库路径。
若仍无法解决,需确认鸿蒙Next的Linux环境是否完整支持该库。
这个问题是由于运行时找不到libcangjie-runtime.so
动态库导致的。在Linux系统中,动态链接库的搜索路径由以下几个因素决定:
LD_LIBRARY_PATH
环境变量/etc/ld.so.conf
配置文件- 默认库路径(/lib和/usr/lib)
解决方法:
-
确认
libcangjie-runtime.so
文件确实存在于/opt/tools/cangjie/lib/linux_x86_64_llvm
目录中 -
临时解决方案(当前会话有效):
export LD_LIBRARY_PATH=/opt/tools/cangjie/lib/linux_x86_64_llvm:$LD_LIBRARY_PATH
-
永久解决方案:
# 将库路径添加到配置 echo "/opt/tools/cangjie/lib/linux_x86_64_llvm" | sudo tee -a /etc/ld.so.conf.d/cangjie.conf # 更新动态链接器缓存 sudo ldconfig
注意:PATH
环境变量用于可执行文件搜索,而LD_LIBRARY_PATH
用于动态库搜索,这是两个不同的概念。