首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gpgme-1.18无法编译

gpgme-1.18无法编译
EN

Unix & Linux用户
提问于 2022-10-28 18:05:21
回答 1查看 123关注 0票数 0

我正在根据https://linuxfromscratch.org/blfs/view/systemd/postlfs/gpgme.html的说明从源代码编译gpgme-1.18

编译失败,出现以下错误:

代码语言:javascript
复制
Making all in python
make[2]: Entering directory '/home/brad_b82/gpgme-1.18.0/lang/python'
Making all in .
make[3]: Entering directory '/home/brad_b82/gpgme-1.18.0/lang/python'
set -e ; for PYTHON in /usr/bin/python3.10; do \
  CPP="gcc -E" \
  CFLAGS="-g -O2 -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-format-y2k -Wno-missing-field-initializers -Wno-sign-compare -Wno-format-zero-length -Wno-format-truncation -Wno-sizeof-pointer-div" \
  srcdir="." \
  top_builddir="../.." \
    $PYTHON setup.py build --verbose --build-base="$(basename "${PYTHON}")-gpg" ; \
done
running build
Using gpgme.h from ../../src/gpgme.h
Please use --libdir=LIBDIR option or set PKG_CONFIG_LIBDIR
Or set PKG_CONFIG_PATH
Could not find gpg-error-config.  Please install the libgpg-error development package.
make[3]: *** [Makefile:758: all-local] Error 1
make[3]: Leaving directory '/home/brad_b82/gpgme-1.18.0/lang/python'
make[2]: *** [Makefile:475: all-recursive] Error 1
make[2]: Leaving directory '/home/brad_b82/gpgme-1.18.0/lang/python'
make[1]: *** [Makefile:460: all-recursive] Error 1
make[1]: Leaving directory '/home/brad_b82/gpgme-1.18.0/lang'
make: *** [Makefile:538: all-recursive] Error 1

电脑在撒谎!在前面的配置过程中,脚本能够看到gpg-error-config。

代码语言:javascript
复制
checking for gpg-error-config... /usr/bin/gpg-error-config
checking for gpgrt-config... /usr/bin/gpgrt-config
configure: Use gpgrt-config with /usr/lib as gpg-error-config
checking for GPG Error - version >= 1.36... yes (1.46)
configure: Use gpgrt-config as libassuan-config

我可以确认它的路径位置:

代码语言:javascript
复制
brad_b82 [ ~ ]$ which gpg-error-config
/usr/bin/gpg-error-config
brad_b82 [ ~ ]$ 

gpg-error-config是一个符号链接:

代码语言:javascript
复制
brad_b82 [ ~ ]$ file /usr/bin/gpg-error-config 
/usr/bin/gpg-error-config: symbolic link to gpgrt-config
brad_b82 [ ~ ]$ 

当我运行gpg-error-config时,我得到以下信息:

代码语言:javascript
复制
brad_b82 [ ~ ]$ gpg-error-config
Please use --libdir=LIBDIR option or set PKG_CONFIG_LIBDIR
Or set PKG_CONFIG_PATH
brad_b82 [ ~ ]$

我不知所措,不知如何解决我的问题。任何帮助都是非常感谢的!

编辑1,关于BRUNSON

我确实验证了libgpg错误的位置,所以我也将相同的库复制到/usr/share/libgpg-error/文档告诉我这是默认位置。

代码语言:javascript
复制
Making all in python
make[2]: Entering directory '/home/brad_b82/gpgme-1.18.0/build1/build2/lang/python'
Making all in .
make[3]: Entering directory '/home/brad_b82/gpgme-1.18.0/build1/build2/lang/python'
ln -sf "../../../../src/data.h" .
ln -sf "../../conf/config.h" .
ln -sf "../../../../lang/python/src" gpg
touch copystamp
set -e ; for PYTHON in /usr/bin/python3.10; do \
  CPP="gcc -E" \
  CFLAGS="-g -O2 -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wno-format-y2k -Wno-missing-field-initializers -Wno-sign-compare -Wno-format-zero-length -Wno-format-truncation -Wno-sizeof-pointer-div" \
  srcdir="../../../../lang/python" \
  top_builddir="../.." \
    $PYTHON setup.py build --verbose --build-base="$(basename "${PYTHON}")-gpg" ; \
done
running build
Using gpgme.h from ../../src/gpgme.h
Please use --libdir=LIBDIR option or set PKG_CONFIG_LIBDIR
Or set PKG_CONFIG_PATH
Could not find gpg-error-config.  Please install the libgpg-error development package.
make[3]: *** [Makefile:758: all-local] Error 1
make[3]: Leaving directory '/home/brad_b82/gpgme-1.18.0/build1/build2/lang/python'
make[2]: *** [Makefile:475: all-recursive] Error 1
make[2]: Leaving directory '/home/brad_b82/gpgme-1.18.0/build1/build2/lang/python'
make[1]: *** [Makefile:460: all-recursive] Error 1
make[1]: Leaving directory '/home/brad_b82/gpgme-1.18.0/build1/build2/lang'
make: *** [Makefile:538: all-recursive] Error 1
brad_b82 [ ~/gpgme-1.18.0/build1/build2 ]$ ls /usr/lib/ | grep gpg
libgpg-error.so
libgpg-error.so.0
libgpg-error.so.0.33.1
brad_b82 [ ~/gpgme-1.18.0/build1/build2 ]$ ls /usr/share/libgpg-error/
errorref.txt  libgpg-error.so  libgpg-error.so.0  libgpg-error.so.0.33.1
brad_b82 [ ~/gpgme-1.18.0/build1/build2 ]$ 

我想指出的新事物。gpgme绑定的"cl“和"cpp”部分似乎编译得很好。直到它试图编译python绑定,它才会窒息。

我还试着阅读python部分中的每一行输出,我注意到一些奇怪的东西.Using gpgme.h来自../src/gpgme.h

不会有这样的路径,因为我所在的目录是: is ~/gpgme-1.18.0,扩展为/home/brad_b82/gpgme-1.18.0。

由于我没有足够的知识来解决这个问题,我决定简单地尝试:

代码语言:javascript
复制
cd ~
rm -Rf gpgme-1.18.0
tar -xvf gpgme-1.18.0.tar.bz2
cd gpgme-1.18.0
mkdir build1
cd build1
mkdir build2
cd build2
../../configure --prefix=/usr --libdir=/usr/lib --disable-gpg-test

我的思维过程是现在,.././src/gpgme.h实际上存在。但还是失败了。是的,我确实包含了--libdir=/usr/lib,只是为了试图覆盖基本内容,尽管在配置脚本中没有添加相同的路径。

EN

回答 1

Unix & Linux用户

发布于 2022-10-29 02:40:40

我要回答这个问题然后结束它..。

linuxfromscratch最近向gpgme发布了解决这些问题的修补程序。

我不是一个程序员,但当我看到脚本试图从不存在的目录中提取时,我看起来至少是在正确的轨道上。

问题解决了,案子结束了。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/722835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档