Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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
构建';libconfig';作为32位库_C_Linux_Redhat_Libconfig - Fatal编程技术网

构建';libconfig';作为32位库

构建';libconfig';作为32位库,c,linux,redhat,libconfig,C,Linux,Redhat,Libconfig,我试图将libconfig()用于我试图编写的一个小实用程序。我正在尝试构建libconfig,然后将库文件(libconfig.a)复制到我的实用工具的目录中。当我构建我的实用程序时,我会收到关于体系结构不兼容的警告。这是我收到的一条特别的警告信息 /usr/bin/ld:warning:i386:x86-64输入文件'libconfig.a(libconfig_la-libconfig.o)'的体系结构与i386输出不兼容 我正在构建一台Red Hat Enterprise Linux Se

我试图将libconfig()用于我试图编写的一个小实用程序。我正在尝试构建libconfig,然后将库文件(libconfig.a)复制到我的实用工具的目录中。当我构建我的实用程序时,我会收到关于体系结构不兼容的警告。这是我收到的一条特别的警告信息

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

我正在构建一台Red Hat Enterprise Linux Server 5.10版计算机(
uname-m
products
'x86\u 64'
)。我尝试使用以下内容构建libconfig:

configure--disable cxx CFLAGS='-m32'LDFLAGS='-m32'

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

我还尝试了
configure--disable cxx CFLAGS='-arch i386'LDFLAGS='-arch i386
,但此命令行不会构建库

有人知道如何将libconfig构建为32位库以正确使用吗

谢谢,

标记当在命令行上传递时,
configure
脚本将忽略
CFLAGS=
等参数。您需要为configure的调用设置它们,例如:

env CFLAGS=-m32 LDFLAGS=-m32 ./configure --disable-cxx
完成此操作后,在重建库时,生成的
lib/.libs/libconfig.a
中列出的所有符号都以32位地址列出

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

一些有影响的环境变量:


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

Petesh,感谢您提供的信息。不幸的是,我仍然无法创建32位库。我没有提到我心爱的IT部门在默认情况下让每个人都使用tsch,因此
evn CFLAGS-m32 LDFLAGS=-32
不起作用。我尝试用setenv在启动脚本(/.cshrc)中设置env变量,但这也不起作用。我从来没有看到过你表示的信息。我还尝试用
#创建一个脚本/bin/bash
使用上面列出的命令,但该命令也不起作用。@lordhog-由于
-m32
也会影响链接,我建议您尝试传递:
env CC=“gcc-m32”。/configure…
@BrettHale,感谢您告诉我如何在tsch中正确发出该命令。一旦命令格式正确,configure命令就会工作,然后
make
构建正确的库。我尝试了两个命令行版本(@Petesh和@BrettHale),并且都创建了一个与我的实用程序一起工作的库。但它们不是二进制等价的。我不确定差异是什么,也不知道如何确定,但diff确实告诉我它们是不同的。我对@BrettHale和@Petesh感激不尽。