gpt4 book ai didi

c - 将 'libconfig' 构建为 32 位库

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:03 26 4
gpt4 key购买 nike

我正在尝试将 libconfig ( http://www.hyperrealm.com/libconfig/ ) 用于我正在尝试编写的一个小实用程序。我正在尝试构建 libconfig,然后将库文件 (libconfig.a) 复制到我的实用程序目录。当我构建我的实用程序时,我收到有关架构不兼容的警告。这是我收到的特定警告消息之一。

/usr/bin/ld: 警告:输入文件 'libconfig.a(libconfig_la-libconfig.o)' 的 i386:x86-64 架构与 i386 输出不兼容

我在 Red Hat Enterprise Linux Server 5.10 版机器上构建(uname -m 生成 'x86_64')。我尝试使用以下内容构建 libconfig:

配置 --disable-cxx CFLAGS='-m32' LDFLAGS='-m32'

但不幸的是,这似乎没有生成正确的库,因为我仍然看到相同的警告。在构建过程中创建了其他实用程序,所有实用程序共享 make 通用 make 指令,这些指令指定 CFLAGS = -m32 -Wextra -Wall -Werror -OsLDFLAGS = -m32,所以我无法更改此行为。

我也试过 configure --disable-cxx CFLAGS='-arch i386' LDFLAGS='-arch i386,但是这个命令行不会构建库。

有谁知道如何将 libconfig 构建为 32 位库以便正确使用。

谢谢,
标记

最佳答案

configure 脚本在命令行传递时将忽略像 CFLAGS= 这样的参数。您需要设置它们以调用配置,即:

env CFLAGS=-m32 LDFLAGS=-m32 ./configure --disable-cxx

完成此操作后,生成的 lib/.libs/libconfig.a 中列出的所有符号都会在重建库时以 32 位地址列出。

在配置脚本帮助输出中注意它确实说:

Some influential environment variables:

这意味着它们需要是环境变量,而不是作为参数传递给命令

关于c - 将 'libconfig' 构建为 32 位库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25456418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com