【问题标题】:Whats the difference between armv6 and i386?armv6和i386有什么区别?
【发布时间】:2011-04-17 00:44:08
【问题描述】:

我正在尝试将 libssh2.dylib(由 Matthew Wilkinson 使用来自http://www.libssh2.org 的 libssh2 库编译的第 3 方库)链接到我的 xcode 项目,但是当我尝试以下代码时:

const char * libssh2_version(int required_version);
printf("libssh2 version: %s", libssh2_version(0));

这是我得到的错误:

ld: warning: in /iaN's Work/Developer/Apple/iPhone/apps/PortScanner/libssh2.1.dylib,    file was built for armv6 which is not the architecture being linked (i386)
Undefined symbols:
"_libssh2_version", referenced from:
-[Request connect] in Request.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

我在尝试任何 libssh2 API 时都会收到此错误。任何人有任何线索的问题是什么?这些是我链接到项目的文件:

// SSH Librarys 
#include "libssh2_config.h"
#include "libssh2.h"
#include "libssh2_sftp.h"

#ifdef HAVE_WINDOWS_H
#include <windows.h>
#endif
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
#endif

#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
# ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif

#include <sys/types.h>
#include <fcntl.h>
#include <errno.h>
#include <stdio.h>
#include <ctype.h>

我还将 libssh2.dylib 文件链接到框架,并将构建选项卡上“搜索头文件”的递归路径添加到文件 libssh2.a、libgcrypt.a、libgpg-error.a。

【问题讨论】:

  • 我对 iPhone 开发一无所知,但是 ARMv6 是 iPhone 内部 CPU 的架构,而 i386 是 OS X 台式机的架构。所以听起来你正在使用一个 iPhone 库,但 XCode 认为你想编译一个桌面应用程序。检查您的项目设置。

标签: iphone arm cpu-architecture i386 libssh


【解决方案1】:

看起来该库是为 armv6 构建的(在设备上运行),而您正试图将其链接到 i386 应用程序(在模拟器上运行)。这显然行不通。

【讨论】:

    【解决方案2】:

    它们是完全不同的 CPU 架构。如果您尝试使用一个针对其中一个的预编译库,那么您不能在另一个上使用它,您需要找到一个针对您想要的平台的预编译库 - 适用于 iPhone 的 armv6,适用于 Mac 的 i386。

    由于您标记了 iPhone,您可能拥有正确的库,但您的项目设置搞砸了 - 确保 Base SDK 设置正确(撰写本文时为 4.1)。一旦这是正确的,它可能根本不会为您提供 i386 目标选项,并且一旦您选择 4.1 SDK,它将默认为“armv6 armv7”。

    【讨论】:

    • 当时我正在尝试在 iPhone 模拟器上运行它。我想它在模拟器上不起作用,所以也许我应该在设备上试试吧?
    • 不,你为模拟器构建,就好像它是一个真正的设备 - arm,而不是 i386。
    猜你喜欢
    • 2015-08-09
    • 2010-12-17
    • 2012-01-09
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    • 2012-03-14
    • 2012-02-06
    相关资源
    最近更新 更多