Make

從 git clone 建構和下載的 zip 之間的區別

  • January 20, 2017

我正在嘗試手動建構xcb-util-xrm庫。我找到了兩個帶有建構說明的連結,一個來自問題跟踪器i3gaps一個來自這個錯誤報告

第一個連結中的說明來自2016年,總結

git clone https://github.com/Airblader/xcb-util-xrm
cd xcb-util-xrm
git submodule update --init
./autogen.sh --prefix=/usr
make
sudo make install

第二個連結中的說明來自 2013 年:

  1. 將 LT_INIT 添加到 configure.ac

  2. 使 autogen.sh 執行 “rm -rf m4; git submodule update –init”

我的問題是,如果我只從git hub下載並解壓縮 zip 文件,如何在 ubuntu 16.04.1 下建構這個庫?

到目前為止我所做的,我添加LT_INITconfigure.ac. 然後我兩次執行以下命令,一次帶有前綴選項,一次沒有。兩次我都得到相同的結果:

$ ./autogen.sh --prefix=/usr
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy
autoreconf: running: /usr/bin/autoconf
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --no-force
Makefile.am:35: error: 'pkgconfig_DATA' is used but 'pkgconfigdir' is undefined
Makefile.am:26: error: 'xcbinclude_HEADERS' is used but 'xcbincludedir' is undefined
autoreconf: automake failed with exit status: 1

我的下一個調查是打開autogen.sh(你可以在 git hub 上看到文件的內容)。該文件包含兩個主要命令,第一個autoreconf -v --install || exit 1返回上面的整個錯誤堆棧。

我的問題是我不知道如何解決錯誤:

Makefile.am:35:錯誤:使用了“pkgconfig_DATA”但未定義“pkgconfigdir”

我剛剛打開Makefile.am並找到第 35 行pkgconfig_DATA = xcb-xrm.pc。我檢查了我的預設路徑是什麼pkg-config,但直到現在我不知道如何以及在哪裡可以定義pkgconfigdir.

$pkg-config --variable pc_path pkg-config
   /usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig

2016 年的說明對我有用,無論是來自git clone存檔還是存檔,而無需擔心LT_INIT. 如果您下載完整的發布存檔xcb-util-xrm-1.2.tar.gz,則無需執行autogen.sh,您可以./configure改為執行。如果您只下載一個源存檔,您將沒有m4.

您確實需要pkg-config安裝(這可能會解釋Makefile.am您遇到的錯誤)和libxcb-util0-dev(否則您稍後會收到錯誤)。

引用自:https://unix.stackexchange.com/questions/338980