使用 config.site 构建 *.pc 时 @libdir@ 不正确?

2023-12-15

我正在 Fedora x86_64 上工作。它用/lib64, /usr/lib64和朋友。我有以下内容*.pc.in file:

$ cat libcryptopp.pc.in
prefix=@prefix@
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
...

My config.site有以下内容。它是从 Fedora 复制的config.site at /usr/share/config.site。使用该副本的原因是Fedora x86_64 上供应商库的 config.site.

$ cat /usr/local/share/config.site
...

# Note: This file includes also RHEL/Fedora fix for installing libraries into
# "/lib/lib64" on 64bit systems.

if test -n "$host"; then
    # skip when cross-compiling
    return 0
fi

if test "$prefix" = /usr \
   || { test "$prefix" = NONE && test "$ac_default_prefix" = /usr ; }
then
    test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc
    test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
    test "$localstatedir" = '${prefix}/var' && localstatedir=/var

    ARCH=`uname -m`
    for i in x86_64 ppc64 s390x aarch64; do
        if test $ARCH = $i; then
            test libdir='${exec_prefix}/lib64'
            break
        fi
    done
fi

然而,在 Autoconf 处理完我的*.pc.in file:

$ autoreconf --install --force
...
$ ./configure
...

$ cat libcryptopp.pc
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
...

Notice libdir=${exec_prefix}/lib, 并不是libdir=${exec_prefix}/lib64.

GCC 肯定正在为该包构建 64 位二进制文​​件。我没有添加-mx32 or -m32:

$ gcc -dumpmachine
x86_64-redhat-linux

为什么是错误的lib/正在使用的目录,如何修复它?


The /usr/local/share/config.site是错的。虽然它是从 Fedora 复制的config.site并放置在/usr/local/share,前缀目录错误。前缀测试应该使用/usr/local并不是/usr.

下面是更正后的。

$ cat /usr/local/share/config.site
...

if test -n "$host"; then
    # skip when cross-compiling
    return 0
fi

if test "$prefix" = /usr/local \
   || { test "$prefix" = NONE && test "$ac_default_prefix" = /usr/local ; }
then
    test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc
    test "$sharedstatedir" = '${prefix}/com' && sharedstatedir=/var
    test "$localstatedir" = '${prefix}/var' && localstatedir=/var

    ARCH=`uname -m`
    for i in x86_64 ppc64 s390x aarch64; do
        if test $ARCH = $i; then
            test "$libdir" = '${exec_prefix}/lib' && libdir='${exec_prefix}/lib64'
            break
        fi
    done
fi

现在,下一个问题是,为什么 Fedora 的/usr/share/config.site不处理prefix=/usr/local适当地。这是一个悬而未决的问题问题 1510073:对于 *.pc 文件中的“libdir=@libdir@”,Autoconf 不支持 config.site 中的 libdir,已关闭为不是错误.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 config.site 构建 *.pc 时 @libdir@ 不正确? 的相关文章

  • 如何加密配置文件、grails [和 java] 中的密码

    我正在寻找如何在 grails 中逐步保护配置文件中的密码 这意味着保护 Config groovy 和 DataSource groovy 中的密码 有很多谷歌结果包含了一些答案 但没有关于如何做到这一点的简明指南 有人可以指出我正确的方
  • .NET 配置节设计器 - 我的集合在哪里?

    我正在使用配置部分设计器 http csd codeplex com 为 NET构建一个简单的ConfigurationElementCollection It appears一切都构建得很好 并且代码是自动生成的 因为子元素通过 Inte
  • NHibernate连接字符串:如何指定端口号和服务器\实例?

    我正在用 NHibernate 2 1 替换旧的 DAL 我的 NHibernate 配置适用于我的本地开发机器 但不适用于 UAT UAT 数据库是在非默认端口上设置的集群 我正在使用类似于下面的标准 NHibernate confie
  • Yii2:配置参数与 const/define

    我什么时候应该使用什么 我可以选择在index php入口脚本文件中定义常量 就像推荐的那样Yii2 指南 常量 http www yiiframework com doc 2 0 guide structure entry scripts
  • Android:程序化“允许重新定向”首选项仅有效一次

    我有一个带有 allow reorientation 键的 CheckBoxPreference 如果启用 那么我的主要活动应该在设备旋转时重新定向 如果禁用 它应该保持在当前方向 我在我的manifest xml中设置了 android
  • WebLogic 桥消息:“Web 服务器桥失败:没有可用于连接的后端服务器...”

    我有一个在 Oracle WebLogic 上运行的应用程序 来自供应商的打包软件 有一些操作 如果我尝试它们 我总是会收到以下错误页面 WebLogic 桥消息 Web 服务器桥失败 没有可用于连接的后端服务器 10 秒后超时或幂等设置为
  • 如何从 App.Config 文件设置 CultureInfo.CurrentCulture?

    我需要通过 App Config 文件设置应用程序的区域性 以便自动使用 pt BR 来解析日期 而无需手动告知每个操作的区域性 据我所知 有一个globalization可以在内部定义的部分system webWeb Config 文件中
  • App.config 连接字符串相对路径

    我需要在 app config 中设置 sqlite 连接字符串 我想设置相对于调试 发布文件夹的路径 数据库文件将复制到这些文件夹
  • 使用端口 80 (Ubuntu / Linode) 运行 Node.js 的最佳实践 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在设置我的第一个Node js服务器上的cloud Linux node我对以下细节还很陌生Linux admin 顺便说一句 我并没有尝试
  • 自定义 web.config 部分处理程序

    我之前设计过一个自定义部分处理程序 但我遇到了一个我似乎无法想到的问题 我有一个像这样的配置部分
  • Spring - 捕获bean创建异常

    我想在我的代码中捕获 bean 实例化异常 我有什么选择 一种方法是使用基于 Java 的容器配置 Configuration public class AppConfig Bean public SomeBean someBean try
  • Spring Boot如何读取jar外部的属性文件

    在我的目标文件夹中 有 2 个文件夹 lib 和 conf 所有的属性文件都放在conf文件夹中 jar放在lib Folder中 在 Spring Boot 之前 我们在 spring xml 中使用以下配置来使用 value
  • 多个构建配置可以共享一个配置转换吗?

    我正在使用 SlowCheetah 进行 XML 转换项目中的一堆配置文件 但是 这个相同的解决方案是负载平衡设置的一部分 其中不同服务器 在本例中为两个 之间的某些配置值有所不同 我有以下构建配置 Debug Release 发布 测试
  • 自动化脚本:如果 FieldA = 1,则将 FieldB 设置为“one”

    我试图将这个问题分解为可管理的部分 空间查询 https stackoverflow com questions 56587515 maximo spatial query 我认为第一步是创建一个自动化脚本这样做是这样的 从字段中获取值 用
  • 企业库 CacheFactory.GetCacheManager 抛出空引用

    我正在尝试将使用 1 1 版本的企业库缓存块的应用程序转换为 2 0 版本 我认为我真正遇到的问题是不同 EntLib 部分的配置被分成几个文件 显然 这曾经是由ConfigurationManager 部分处理程序 但现在已经过时 取而代
  • idn_to_ascii():INTL_IDNA_VARIANT_2003 已弃用

    我正在为我的网站使用 codeigniter 框架 但在 form validation 中我收到错误 我按照 stackoverflow 中的此链接操作 但它对我不起作用 跟随链接 5 2 17 中的 idn to ascii https
  • 字体更改时处理运行时活动配置

    某些设备配置可能会在运行时发生变化 例如屏幕方向 键盘可用性和语言 当发生这样的变化时 Android会重新启动正在运行的Activity 我们可以使用我们自己的配置来处理这个问题 onConfigurationChanged 但是 如果从
  • JAAS keytab 配置的相对路径

    我有一个系统 其中 NET 客户端使用 Kerberos 针对 Java 服务器进行身份验证 一切正常 但我正在尝试改进服务器配置 目前一个keytab根目录中需要文件C 因为我的jaas配置文件看起来像这样 Server com sun
  • 如何设置Python的USER_SITE;我需要吗?

    我在 OS X 10 10 只需使用 pip 维护 上安装了 Python 我的站点包位于 Library Python 2 7 site packages 苹果的封装在 System Library Frameworks Python f
  • 如何在supervisord中设置组?

    因此 我正在设置 Supervisord 并尝试控制多个进程 并且一切正常 现在我想设置一个组 以便我可以启动 停止不同的进程集 而不是全部或全无 这是我的配置文件的片段 group tapjoy programs tapjoy game1

随机推荐