C 为什么;ld-m——冗长的;未列出*.a的对象文件(*.o)

C 为什么;ld-m——冗长的;未列出*.a的对象文件(*.o),c,cross-compiling,ld,glib,xen,C,Cross Compiling,Ld,Glib,Xen,我很能说会道。当使用-m elf_x86_64-lglib-2.0选项链接程序对象时,会产生大量未定义的引用,这些引用应该在glib库中定义。所以我使用--verbose选项,发现ld命令无法列出应该包含在glib-2.0.a库中的对象文件 我的链接命令和输出如下: ld -r -nostdlib -L/media/wind/lab/xen/xen/xen-4.4.0/stubdom/cross-root-x86_64/x86_64-xen-elf/lib -m elf_x86_64 \ --

我很能说会道。当使用-m elf_x86_64-lglib-2.0选项链接程序对象时,会产生大量未定义的引用,这些引用应该在glib库中定义。所以我使用--verbose选项,发现ld命令无法列出应该包含在glib-2.0.a库中的对象文件

我的链接命令和输出如下:

ld -r -nostdlib -L/media/wind/lab/xen/xen/xen-4.4.0/stubdom/cross-root-x86_64/x86_64-xen-elf/lib  -m elf_x86_64 \
--verbose /media/wind/lab/xen/xen/xen-4.4.0/stubdom/mini-os-x86_64-vmi/arch/x86/x86_64.o \
......\
-L/media/wind/lab/xen/xen/xen-4.4.0/stubdom/mini-os-x86_64-vmi/arch/x86 -lx86_64  \
-lc -lglib-2.0  -lvmi  -o /media/wind/lab/xen/xen/xen-4.4.0/stubdom/mini-os-x86_64-vmi/mini-os.o
GNU ld (GNU Binutils for Ubuntu) 2.22
......
attempt to open /media/wind/lab/xen/xen/xen-4.4.0/stubdom/cross-root-x86_64/x86_64-xen-elf/lib/libglib-2.0.a succeeded
attempt to open /media/wind/lab/xen/xen/xen-4.4.0/stubdom/cross-root-x86_64/x86_64-xen-elf/lib/libvmi.a succeeded   (/media/wind/lab/xen/xen/xen-4.4.0/stubdom/cross-root-x86_64/x86_64-xen-elf/lib/libvmi.a)libvmi_la-accessors.o  (/media/wind/lab/xen/xen/xen-4.4.0/stubdom/cross-root-x86_64/x86_64-xen-elf/lib/libvmi.a)libvmi_la-convenience.o

如上所示,尽管glib-2.0.a的“尝试打开”成功,但没有列出任何对象。但所有其他库通常都会列出自己的*.o对象,如上面的libvmi.a。有人知道我的交叉编译出了什么问题吗

如果您手动提取“.a”的内容,使用“ar x path/to/archive”会怎么样?