0

我正在尝试构建具有对 QDoc 和 Qt 语言学家的 clang 支持的 qt 工具。

它构建得很好,但是,在运行 dh_shlibdeps 时,会出现以下错误:

dpkg-shlibdeps: error: no dependency information found for /usr/lib/llvm-11/lib/libLLVM-11.so.1 (used by debian/qt-android-6.2-host/usr/lib/qt-android-6.2-host/bin/lupdate)

我猜二进制文件(lupdate)不应该链接到 /usr/lib/llvm-11/lib/libLLVM-11.so.1 (由 llvm-11-dev 包提供),而是链接到 /usr/lib/x86_64-linux -gnu/libLLVM-11.so(由 libllvm11 包提供)

llvm-config --libdir 返回

/usr/lib/llvm-11/lib

跑的时候一样dpkg-architecture -c llvm-config --libdir

我想这就是它在那里搜索图书馆的原因。

我可以将这一行添加到 debian/shlibs.local,但这意味着使二进制包依赖于一个非常大的包,而我只需要 libllvm11。

libLLVM-11 1 llvm-11-dev

更新:我libLLVM-11 1 libllvm11最后使用的是小于 llvm-11-dev 的。

我必须遗漏一些东西才能让它工作。将其链接到的正确方法是什么/usr/lib/x86_64-linux-gnu/libLLVM-11.so

顺便说一句,/var/lib/dpkg/info/libllvm11 包含:

amd64.shlibs:libLLVM-11 1 libllvm11 (>= 1:9~svn298832-1~)

在 build.ninja 文件中,有这个

LINK_LIBRARIES = -Wl,-rpath,"\$$ORIGIN/../lib:/usr/lib/llvm-11/lib:"  qtbase/lib/libQt6QmlDevTools.a  qtbase/lib/libQt6Core.so.6.2.0  /usr/lib/llvm-11/lib/libclang-11.so.1  /usr/lib/llvm-11/lib/libclang-cpp.so.11  /usr/lib/llvm-11/lib/libLLVM-11.so.1  -lpthread

的输出dpkg-shlibdeps -v debian/qt-android-6.2-host/usr/lib/qt-android-6.2-host/bin/lupdate

dpkg-shlibdeps: debug: >> Scanning debian/qt-android-6.2-host/usr/lib/qt-android-6.2-host/bin/lupdate (for Depends field)
dpkg-shlibdeps: debug: Library libLLVM-11.so.1 found in /usr/lib/llvm-11/lib/libLLVM-11.so.1
dpkg-shlibdeps: debug: Library libLLVM-11.so.1 found in /usr/lib/x86_64-linux-gnu/libLLVM-11.so.1
dpkg-shlibdeps: debug: Using shlibs+objdump for libLLVM-11.so.1 (file /usr/lib/llvm-11/lib/libLLVM-11.so.1)
dpkg-shlibdeps: debug:  Looking up shlibs dependency of libLLVM-11.so.1 provided by 'llvm-11-dev'
dpkg-shlibdeps: debug:  Found nothing
dpkg-shlibdeps: debug: No shlibs+objdump info available, trying next package for /usr/lib/llvm-11/lib/libLLVM-11.so.1
dpkg-shlibdeps: error: no dependency information found for /usr/lib/llvm-11/lib/libLLVM-11.so.1 (used by debian/qt-android-6.2-host/usr/lib/qt-android-6.2-host/bin/lupdate)
Hint: check if the library actually comes from a package.

4

0 回答 0