代码之家  ›  专栏  ›  技术社区  ›  chuckSaldana

_fopen$UNIX2003引用自OpenSSL问题

  •  1
  • chuckSaldana  · 技术社区  · 14 年前

    我正在为iPhone应用程序使用编译的OpenSSL。我按照这里的指示做了 http://www.x2on.de/kontakt/ 所以我可以在iPhone模拟器上开发rsa操作。问题是,我在构建项目时遇到以下错误:

    _fopen$UNIX2003引用自

    _libcrypto\u i386.a(bss\u file.o)符号中的文件\u ctrl

    每次调用此函数获取公钥时:

    RSA*d2i\RSAPublicKey(RSA**a,const unsigned char**pp,long length);

    有些地方指出这是一个版本问题,所以我应该为一个不同的架构(目前使用iPhoneOS3.2.sdk)构建openssl,对吗?

    2 回复  |  直到 13 年前
        1
  •  1
  •   rubenvb    13 年前

    This this

    您应该尝试清理项目的生成输出( make clean )并用相同的编译器/SDK重建所有的东西。

        2
  •  5
  •   k06a    10 年前

    创建新的 *.c 将此代码归档并复制到其中:

    #include <stdio.h>
    #include <unistd.h>
    #include <string.h>
    #include <stdlib.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);
    }
    

    在此处找到此解决方案: http://helpdesk.metaio.com/questions/35905/undefined-symbols-for-architecture-i386-xcode-6-ios-8-beta-6/36538