【问题标题】:Error compiling Qualnet on Mac: file is not of required architecture在 Mac 上编译 Qualnet 时出错:文件不是必需的架构
【发布时间】:2010-08-01 18:47:19
【问题描述】:

尝试在 Mac 上编译 Qualnet 时,出现以下错误: ld:警告:在 ../kernel/obj/mobility_private.o-darwin-x86-gcc-4.0 中,文件不是必需的架构 以及此类其他文件的一堆错误。 所以我想知道是否有办法解决这个问题。 焦急等待帮助。

【问题讨论】:

    标签: c++ macos linker


    【解决方案1】:

    这意味着您正在尝试链接不同架构的对象。

    例如,有一个为 i386(32 位)编译的对象和另一个为 x86_64(64 位)编译的对象。

    确保针对目标架构编译所有对象。您的选择是:

    1. 为 64 位重新编译 mobility_private.o (-arch x86_64);
    2. 为 32 位和 64 位重新编译 mobility_private.o (-arch i386 -arch x86_64);
    3. 为 32 位 (-arch i386) 重新编译您的应用程序,使其正确链接到 mobility_private.o

    【讨论】:

      【解决方案2】:

      您可以使用 file 检查某个二进制文件的架构:

      file libdynlib.so
      libdynlib.so: Mach-O 64-bit dynamically linked shared library x86_64
      

      您必须将您的程序编译为与您正在使用的库相同的体系结构。所以,一切都必须是 32 位或 64 位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 2011-07-10
        • 2012-02-17
        • 1970-01-01
        • 2015-08-16
        相关资源
        最近更新 更多