本文介绍了找不到架构 i386 的 libcrypto.a 符号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

xcode 6.3 测试版

xcode 6.3 beta

我在我的项目中使用 libcrypto.a.

I'm using libcrypto.a in my project.

我的应用程序可以在我的 ipod touch5 (armv7) 上编译和运行.

My app can compile and run on my ipod touch5 (armv7).

但是当我尝试在 iphone5 模拟器上运行我的应用程序时,出现错误:

But when I try to run my app on a iphone5 simulator, I'm getting the error:

  "_closedir$UNIX2003", referenced from:
      _OPENSSL_DIR_end in libcrypto.a(o_dir.o)

  "_fputs$UNIX2003", referenced from:
      _write_string in libcrypto.a(ui_openssl.o)
      _read_string in libcrypto.a(ui_openssl.o)

  "_opendir$INODE64$UNIX2003", referenced from:
      _OPENSSL_DIR_read in libcrypto.a(o_dir.o)

  "_readdir$INODE64", referenced from:
      _OPENSSL_DIR_read in libcrypto.a(o_dir.o)
ld: symbol(s) not found for architecture i386

然后我使用以下命令检查了 libcrypto.a 支持的架构:

Then I checked what architectures the libcrypto.a I'm using support using the command:

lipo -info libcrypto.a

并得到结果:

Architectures in the fat file: libcrypto.a are: i386 armv7 armv7s arm64

任何建议将不胜感激,谢谢:)

Any advice will be appreciated, thanks :)

推荐答案

在任何地方创建新的 m 文件.并在此处定义所有缺失的函数:

create new m file anywhere.and define all missing function here:

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
#include <fnmatch.h>

FILE *fopen$UNIX2003( const char *filename, const char *mode )
{
    return fopen(filename, mode);
}

int fputs$UNIX2003(const char *res1, FILE *res2){
    return fputs(res1,res2);
}

int nanosleep$UNIX2003(int val){
    return usleep(val);
}

char* strerror$UNIX2003(int errornum){
    return strerror(errornum);
}

double strtod$UNIX2003(const char *nptr, char **endptr){
    return strtod(nptr, endptr);
}

size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d )
{
    return fwrite(a, b, c, d);
}

DIR * opendir$INODE64( char * dirName )
{
    return opendir( dirName );
}

struct dirent * readdir$INODE64( DIR * dir )
{
    return readdir( dir );
}

这篇关于找不到架构 i386 的 libcrypto.a 符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-16 22:51