Skip to content

Commit 17604dd

Browse files
committed
123
1 parent b51fd09 commit 17604dd

1 file changed

Lines changed: 27 additions & 23 deletions

File tree

.github/workflows/build.yml

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,35 @@ jobs:
4848
4949
tmp_output=$(mktemp)
5050
ldd "$QEMU_BIN" > "$tmp_output" 2>&1
51-
52-
cat "$tmp_output"
5351
missing_libs=$(grep "not found" "$tmp_output" | awk '{print $1}')
5452
55-
echo "$missing_libs"
5653
mapfile -t all_libs < <(find /lib /usr/lib /usr/local/lib -type f -name "lib*.so*" 2>/dev/null)
5754
58-
missing_libs=$(grep -oE "lib[^ ]+\.so[^ ]*" "$tmp_output" | sort -u)
59-
[ -z "$missing_libs" ] && echo "❌ 无法解析缺失库,退出。" && exit 1
60-
61-
echo "for lib in $missing_libs; do"
62-
63-
# for lib in $missing_libs; do
64-
# lib_prefix=$(echo "$lib" | sed 's/[0-9.]*$//') # 例如 libbrlapi.so.0.7 -> libbrlapi.so
65-
# found=""
66-
# for candidate in "${all_libs[@]}"; do
67-
# [[ $(basename "$candidate") == $lib_prefix* ]] && found="$candidate" && break
68-
# done
69-
70-
# if [ -n "$found" ]; then
71-
# link_path="$(dirname "$found")/$lib"
72-
# [ -f "$link_path" ] || ln -s "$(basename "$found")" "$link_path" && echo "Linked: $lib"
73-
# else
74-
# echo "MISSING: $lib -> not found in system."
75-
# exit 1
76-
# fi
77-
# done
55+
for lib in $missing_libs; do
56+
base_lib=$(echo "$lib" | sed -E 's/\.so.*/\.so/')
57+
found=""
58+
59+
for path in "${all_libs[@]}"; do
60+
if [[ $(basename "$path") == $base_lib* ]]; then
61+
found="$path"
62+
break
63+
fi
64+
done
7865
66+
if [ -n "$found" ]; then
67+
# 创建软连接到缺失的库名
68+
target_dir=$(dirname "$found")
69+
link_path="$target_dir/$lib"
70+
if [ -e "$link_path" ]; then
71+
echo "✅ 已存在软链接或库:$link_path"
72+
else
73+
echo "🔗 创建软链接:$link_path -> $(basename "$found")"
74+
sudo ln -s "$(basename "$found")" "$link_path"
75+
fi
76+
else
77+
echo "❌ 未找到用于修复 $lib 的基础库($base_lib),请手动安装。"
78+
exit 1
79+
fi
80+
done
81+
echo "✅ 所有缺失库已处理。"
82+
./install/bin/qemu-system-riscv64 --version

0 commit comments

Comments
 (0)