dh_install -O – buildsystem = cmake dh_install:缺少文件:usr / lib / * / lib * .so

我试图在启动板上将我的cmake项目发布到ppa。 该项目是一个名为“base”的库。

bzr builddeb -- -us -uc -sd在尝试假装安装dev版本的软件包时失败并出现以下错误。

 ... ... Install the project... /usr/bin/cmake -P cmake_install.cmake -- Install configuration: "None" -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so.1.0 -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so.1 -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/libbase.so -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/myxml.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/Socket.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/ClientSocket.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/mycurl.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/mystdlib.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/ServerSocket.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/JPEGImage.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/SocketException.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/FerryTimeStamp.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/myconverters.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/include/ferryfair/base/baseConfig.h -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/lib/pkgconfig/libbase.pc -- Installing: /home/gowtham/Packages/build-area/base-1.1/debian/tmp/usr/share/pkgconfig/libbase.pc make[1]: Leaving directory '/home/gowtham/Packages/build-area/base-1.1/obj-x86_64-linux-gnu' dh_install -O--buildsystem=cmake dh_install: base-dev missing files: usr/lib/*/lib*.so dh_install: base-dev missing files: usr/lib/*/pkgconfig/* dh_install: base1 missing files: usr/lib/*/lib*.so.* dh_install: missing files, aborting debian/rules:11: recipe for target 'binary' failed make: *** [binary] Error 20 dpkg-buildpackage: error: fakeroot debian/rules binary gave error exit status 2 debuild: fatal error at line 1376: dpkg-buildpackage -rfakeroot -D -us -uc -sd failed bzr: ERROR: The build failed. 

如何在安装header files使dev版本的builddeb不同

于Debian /规则

 #!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 override_dh_auto_test: override_dh_usrlocal: %: dh $@ --buildsystem=cmake 

base-dev.installbase1.install中的路径是错误的。

 dh_install: base-dev missing files: usr/lib/*/lib*.so dh_install: base-dev missing files: usr/lib/*/pkgconfig/* dh_install: base1 missing files: usr/lib/*/lib*.so.* 

它们将如下所示正确并且可以构建包:

 usr/lib/lib*.so usr/lib/pkgconfig/* usr/lib/lib*.so.* 

但是对于多拱系统安装, /usr/lib/不安全的lintian消息。

  • 您可以在源级别(作为上游开发人员)修复它,因此cmake将这些文件安装到/usr/lib// 。 这是正确的方法。

  • 或者通过覆盖base-dev.installbase1.install安装路径来修复它在打包级别(作为打包程序)

     #!/usr/bin/dh-exec usr/lib/lib*.so /usr/lib/${DEB_HOST_MULTIARCH} usr/lib/pkgconfig/* /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig usr/lib/lib*.so.* /usr/lib/${DEB_HOST_MULTIARCH}