我正在尝试在64位机器中使用32位.a文件。我使用gcc -m32选项编译了源代码。它给出了以下错误
gcc -m32 *.c -Llib -lquanser_communications -Iinclude -o prg.o`In file included from /usr/include/wchar.h:27:0,
from include/quanser_types.h:16,
from include/quanser_communications.h:16,
from include/quanser_stream.h:11,
from stream_client.c:3:/usr/include/features.h:374:25:
fatal error: sys/cdefs.h: No such file or directory
搜索完成后,我得到了这个thread并安装了libx32gcc-4.8-dev和libc6-dev-i386软件包。
安装这些软件包并运行编译后会出现以下错误
gcc -m32 *.c -Llib -lquanser_communications -Iinclude -o prg.o
lib/libquanser_communications.a: file not recognized: File truncated
我该如何解决这个问题? 感谢。
答案 0 :(得分:0)
您可能会收到此错误,因为您的libquanser_communications是64位而不是32位。您无法针对64位代码编译32位。
如果您自己编译了libqunaser,请使用-m32标志进行编译(递归,直到您完成所有依赖项)。
如果没有,请获取32位版本