【发布时间】:2010-08-01 18:47:19
【问题描述】:
尝试在 Mac 上编译 Qualnet 时,出现以下错误: ld:警告:在 ../kernel/obj/mobility_private.o-darwin-x86-gcc-4.0 中,文件不是必需的架构 以及此类其他文件的一堆错误。 所以我想知道是否有办法解决这个问题。 焦急等待帮助。
【问题讨论】:
尝试在 Mac 上编译 Qualnet 时,出现以下错误: ld:警告:在 ../kernel/obj/mobility_private.o-darwin-x86-gcc-4.0 中,文件不是必需的架构 以及此类其他文件的一堆错误。 所以我想知道是否有办法解决这个问题。 焦急等待帮助。
【问题讨论】:
这意味着您正在尝试链接不同架构的对象。
例如,有一个为 i386(32 位)编译的对象和另一个为 x86_64(64 位)编译的对象。
确保针对目标架构编译所有对象。您的选择是:
mobility_private.o (-arch x86_64);mobility_private.o (-arch i386 -arch x86_64);mobility_private.o。【讨论】:
您可以使用 file 检查某个二进制文件的架构:
file libdynlib.so
libdynlib.so: Mach-O 64-bit dynamically linked shared library x86_64
您必须将您的程序编译为与您正在使用的库相同的体系结构。所以,一切都必须是 32 位或 64 位。
【讨论】: