我想(马修·威尔金森使用libssh2库从http://www.libssh2.org编译第三方库)链接libssh2.dylib到我的Xcode项目,但是当我尝试下面的代码:armv6和i386有什么区别?
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 dev一无所知,但ARMv6是iPhone内部CPU的体系结构,i386是OS X桌面机的体系结构。所以这听起来像你正在使用iPhone库,但XCode认为你想编译一个桌面应用程序。检查你的项目设置。 – bobince 2010-09-24 22:57:15