_fopen $ UNIX2003, на который ссылается проблема OpenSSL - PullRequest
1 голос
/ 08 июля 2010

Я использую скомпилированный OpenSSL для приложения для iPhone. Я следовал инструкциям здесь http://www.x2on.de/kontakt/, чтобы я мог разработать rsa на симуляторе iPhone. Проблема в том, что я получаю эту ошибку при сборке проекта:

_fopen $ UNIX2003, ссылка на которую

_BIO_new_file в libcrypto_i386.a (bss_file.o) _file_ctrl в libcrypto_i386.a (bss_file.o) Символ (ы) не найдено

Каждый раз, когда я вызываю эту функцию, чтобы получить открытый ключ:

RSA * d2i_RSAPublicKey (RSA ** a, const unsigned char ** pp, long length);

В некоторых местах указывается, что это проблема с версией, поэтому я должен собрать openssl для другой архитектуры (в настоящее время использую iPhoneOS3.2.sdk).

Спасибо за ваши комментарии.

Ответы [ 2 ]

5 голосов
/ 21 октября 2014

Просто создайте новый *.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

1 голос
/ 08 июля 2010

Это и это оба предполагают для Mac OS X, что ваша проблема - два разных компонента, скомпилированных для двух разных SDK.

Вы должны попробовать очистить сборку проектавывод (make clean) и восстановление всего с помощью того же компилятора / SDK.

...