no-suitable-image-found 错误解决方法

编译 lzma,luafilesystem 等等文件时,可能会遇到如下报错:

1
2
3
lua: error loading module XXX.so from file XXX.so
dlopen (xxx.so) no suitable image found. Did find:
xxx.so mach-o, but wrong architecture

解决办法是:

  1. 检查你的系统是 32 位还是 64file /bin/ls

    1
    Mach-O 64-bit executable x86_64

    如果是这样则表明是 32 位的了。

  2. 检查编译出的动态库文件是 32 位还是 64: file xxx.so

    1
    lzma.so: Mach-O dynamically linked shared library i386

    如果是上面这样,则表明你的是 32 位的链接库。

  3. 如果你的系统是 32 位的,则在编译时的 CFLAGS 加入对应参数

    • OSX 下:

      64 位

      1
      CFLAGS += arch x86_64

      32 位

      1
      CFLAGS += arch i386
    • linux 下:

      64 位

      1
      CFLAGS += -m64

      32 位

      1
      CFLAGS += -m32

no-suitable-image-found 错误解决方法

https://robinxb.com/posts/2014/no-suitable-image-found/

作者

薯条

发布于

2014-09-30

更新于

2024-01-15

许可协议

评论