[ Technical exchange] 玲珑应用源码构建中libtool的修复
Tofloor
poster avatar
MeGusta
deepin
2026-01-31 18:45
Author

在玲珑环境中,从源码构建应用时(例如Seafile),如果依赖了 libtool,并且是从软件源拉取的deb包,会报错找不到 /usr/share/libtool/build-aux什么的。

报错的路径硬编码在${PREFIX}/bin/libtoolize这个文件中,需要对它进行修复,修复脚本fix-libtool.bash如下:

#!/bin/bash

# 遇到错误立即退出,引用未定义变量报错
set -euo pipefail

echo "" > proj_build.log
exec > >(tee -i proj_build.log) 2>&1

# 修正libtoolize脚本中的libtool硬编码路径
LIBTOOL_FILE="${PREFIX}/bin/libtoolize"

sed -i -e "s|prefix=\"/usr\"|prefix=\"$PREFIX\"|" \
      -e "s|datadir=\"/usr/share\"|datadir=\"$PREFIX/share\"|" \
      -e "s|pkgauxdir=\"/usr/share/libtool/build-aux\"|pkgauxdir=\"$PREFIX/share/libtool/build-aux\"|" \
      -e "s|pkgltdldir=\"/usr/share/libtool\"|pkgltdldir=\"$PREFIX/share/libtool\"|" \
      -e "s|aclocaldir=\"/usr/share/aclocal\"|aclocaldir=\"$PREFIX/share/aclocal\"|" \
      "$LIBTOOL_FILE"
Reply Favorite View the author
All Replies
mozixun
Moderator
a day ago
#1

你可以试一下重新编译libtool然后将PREFIX设置在你即将放置到的目录?

当时我修webkit2gtk硬编码依赖时就是这么干的

Reply View the author