跳过不兼容的目录-gcc
我尝试使用包中的一些库编译脚本,使用:跳过不兼容的目录-gcc,gcc,ld,Gcc,Ld,我尝试使用包中的一些库编译脚本,使用: gcc -g -o sac2mt5 sac2mt5.o libsac2mt5.a -L/home/yuki/sac/lib -lsacio -lm 这就是我得到的错误: /usr/bin/ld: skipping incompatible /home/yuki/sac/lib/libsacio.a when searching for -lsacio /usr/bin/ld: cannot find -lsacio collect2: error: ld
gcc -g -o sac2mt5 sac2mt5.o libsac2mt5.a -L/home/yuki/sac/lib -lsacio -lm
这就是我得到的错误:
/usr/bin/ld: skipping incompatible /home/yuki/sac/lib/libsacio.a when searching for -lsacio
/usr/bin/ld: cannot find -lsacio
collect2: error: ld returned 1 exit status
这里有什么问题?为什么这个库不兼容?为了避免这种情况,需要在标志中更改哪些内容?我只是想知道这是否是图书馆的问题,我对此无能为力,或者我是否做错了什么
任何帮助都是值得的。库
/home/yuki/sac/lib/libsacio。a
是为架构而构建的
与您试图链接程序的程序不兼容。
最可能的原因是库包含32位对象文件和
您正在尝试64位链接。下一个最有可能的是64位库
在32位链接中
如果您cd
到运行此链接的目录并运行:
$ objdump -f sac2mt5.o
输出将包含以下格式的行:
sac2mt5.o: file format <...>
architecture: <...>, flags 0x<...>:
或(32位ELF):
这些将告诉您尝试链接的体系结构的名称(
系统的体系结构)及其对象文件格式的名称
如果您同时运行:
$ objdump -f /home/yuki/sac/lib/libsacio.a
您将在中看到每个对象文件的相应信息
归档/home/yuki/sac/lib/libsacio.a
,您将看到该体系结构
这些对象文件的文件格式与您的系统不匹配
您需要找到并使用为相同体系结构构建的libsacio.a
作为您的系统-如果您的系统是64位的,则最有可能是64位库;32位
如果您的系统是32位的,则为library。库
/home/yuki/sac/lib/libsacio。a
是为体系结构构建的
与您试图链接程序的程序不兼容。
最可能的原因是库包含32位对象文件和
您正在尝试64位链接。下一个最有可能的是64位库
在32位链接中
如果您cd
到运行此链接的目录并运行:
$ objdump -f sac2mt5.o
输出将包含以下格式的行:
sac2mt5.o: file format <...>
architecture: <...>, flags 0x<...>:
或(32位ELF):
这些将告诉您尝试链接的体系结构的名称(
系统的体系结构)及其对象文件格式的名称
如果您同时运行:
$ objdump -f /home/yuki/sac/lib/libsacio.a
您将在中看到每个对象文件的相应信息
归档/home/yuki/sac/lib/libsacio.a
,您将看到该体系结构
这些对象文件的文件格式与您的系统不匹配
您需要找到并使用为相同体系结构构建的libsacio.a
作为您的系统-如果您的系统是64位的,则最有可能是64位库;32位
如果您的系统是32位的,请使用库。谢谢。我觉得是这样的,但我不明白到底该检查什么谢谢。我觉得是这样的,但我不明白到底要检查什么