Ошибки, которые ссылаются на кучу неразрешенных символов OpenSSL, которые явно существуют?

Я строю общую библиотеку (мыпозвонюFoo») который использует другую библиотеку (мы 'позвонюбар"). "бар" использует некоторые функции из OpenSSL.

Вот'где проблемы возникают. "

бар" был скомпилирован как статическая библиотека, и кажется, что OpenSSL тоже. Поэтому, когда я связываю библиотеку ("Foo»), Я включаю:

объектные файлы для "Foo»статическая библиотекаlibbar.aСтатические библиотеки OpenSSLlibcrypto.a а такжеlibssl.a

Команда build выглядит примерно так:

g++ -Wl,-soname,libfoo.so -shared file1.o file2.o libbar.a \
  libcrypto.a libssl.a -o libfoo.so

Тем не менее, я получаю массу ошибок:

ld: ./obj/libbar.a(file1.c.o): in function initialize_openssl:
  ssl.c:117: error: undefined reference to 'SSL_library_init'

Выполнение следующей команды:

nm libssl.a | grep SSL_library_init

Производит следующий вывод:

00000000 T SSL_library_init

Очевидно, что с библиотеками OpenSSL все в порядке. Что могло вызвать что-то подобное? Вот три команды, используемые для сборки OpenSSL:

export cross=arm-linux-androideabi-
./Configure android --prefix=~/openssl-arm
make CC="${cross}gcc" AR="${cross}ar r" RANLIB="${cross}ranlib"

Процесс компиляции завершен без каких-либо ошибок, поэтому яЯ совершенно сбит с толку.

Почему я получаю ошибки компоновщика, которые ссылаются на кучу символов OpenSSL, которые явно существуют?

Ответы на вопрос(1)

Ваш ответ на вопрос