Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake PKGBUILD与make all_Cmake_Makefile_Archlinux_Pkgbuild - Fatal编程技术网

Cmake PKGBUILD与make all

Cmake PKGBUILD与make all,cmake,makefile,archlinux,pkgbuild,Cmake,Makefile,Archlinux,Pkgbuild,我正在尝试为一个包含多个子应用程序的github项目编写AUR的PKGBUILD。 因此,这个项目的CMake文件基本上只运行make-to-make&&make-install子应用程序。 以下是我的构建和打包步骤: build() { cd "$srcdir/$_gitname" [[ -d build ]] && rm -r build mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=

我正在尝试为一个包含多个子应用程序的github项目编写AUR的PKGBUILD。
因此,这个项目的CMake文件基本上只运行make-to-make&&make-install子应用程序。
以下是我的构建和打包步骤:

build() {
  cd "$srcdir/$_gitname"
  [[ -d build ]] && rm -r build
  mkdir build && cd build
  cmake -DCMAKE_INSTALL_PREFIX=/opt/od ..
}

package() {
  cd "${_gitname}/build"
  sudo make all
}
现在我的问题是,除了:

  • makepkg-我在构建过程中从不要求sudo权限(因此我必须在makeall之前添加sudo)
  • 请求安装时,makepkg无法识别包的大小。因此,在运行packman-R packagename时,包也不会卸载

但是,我无法更改CMake文件,因为该项目不是我的,所有不同的子应用程序都属于同一个项目,如果我尝试分别制作和制作安装它们,就会出现一系列错误,它们相互依赖。

包函数无法安装到根层次结构中。相反,makepkg旨在安装到fakeroot下的pkgdir中,其中pkgdir复制实际的根目录结构。看

您可以通过将
DESTDIR=“$pkgdir/”
添加到包函数中的make选项来完成此操作

在创建的包上调用pacman时,它会将文件复制到真正的根层次结构中