dh_auto_configure 与 buildsystem=cmake 失败

Nec*_*twi 3 packaging ppa compiling cmake pbuilder-dist

我正在尝试将我的cmake构建项目发布到我的启动板 ppa。当我在下面进行假构建时,会抛出错误。

gowtham@ubuntu:~/Packages/build-area$ pbuilder-dist xenial build base_1.1-0ubuntu1.dsc
...
...
dh_auto_configure -O--buildsystem=cmake
    mkdir -p obj-x86_64-linux-gnu
    cd obj-x86_64-linux-gnu
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var
dh_auto_configure: cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var failed to to execute: No such file or directory
        cd /build/base-1.1
debian/rules:11: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
...
...
Run Code Online (Sandbox Code Playgroud)

错误消息没有说明缺少什么文件。我的项目没有configure文件要做./configure

我的debian/rules文件

#!/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
Run Code Online (Sandbox Code Playgroud)

我能够使用我手写的 Makefile 成功发布我的库。但是当我选择cmake时我遇到了麻烦。不幸的是,我没有找到任何用于打包 cmake 构建项目的初学者友好指南。

我的正常构建过程:

cd ~/Packages/base
mkdir build
cd build
cmake ..
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

我遵循的说明打包并发布到我的 ppa

cd ~/Packages/base
bzr dh-make base 1.1 base-1.1.tar.gz
cd base/debian/
rm *ex *EX
bzr commit -m "Initial commit of Debian packaging."
bzr builddeb -- -us -uc -sd
bzr builddeb -S -- -sd
bzr tag release-1.1
cd ../../build-area
pbuilder-dist xenial build base_1.1-0ubuntu1.dsc
cd ../base 
bzr push lp:~satyagowtham-k-gmail/+junk/base-package
cd ../build-area
dput ppa:satyagowtham-k-gmail/ferryfair.ppa base_1.1-0ubuntu1_source.changes
Run Code Online (Sandbox Code Playgroud)

use*_*.dz 5

  • 没想到这个问题,所以我下载了你的代码直接尝试:

    bzr branch lp:~satyagowtham-k-gmail/+junk/base-package
    
    Run Code Online (Sandbox Code Playgroud)

    我也要感谢您分享有关打包cmake项目的笔记。相信很多人都需要。

  • 这个错误:

    dh_auto_configure: cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_INSTALL_LOCALSTATEDIR=/var failed to to execute: No such file or directory

    可能意味着命令 ( cmake) 可能会丢失,而不仅仅是目标文件../。我期待Command not found消息,但我错了,因为这里的命令实际上是dh_auto_configure.

  • 所以cmakeBuild-Depends:debian/control文件)中丢失了。添加它然后再试一次,它应该构建得很好。