2015-07-13 1 views
1

Я пытаюсь установить программное обеспечение Stunnel на Mac OS 10.10, и я получаю следующую ошибкунеопределенные символы для архитектуры x86_64 на Mac OS

Неопределенные символы для архитектуры x86_64

при выполнении make команды от терминала.

ниже приведены подробные журналы:

Making all in src 
/Applications/Xcode.app/Contents/Developer/usr/bin/make all-am 
/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -D_THREAD_SAFE -pthread -Wall -Wextra -Wpedantic  -Wformat=2 -Wconversion -Wno-long-long -Wno-deprecated-declarations -fstack-protector -fPIE - D_FORTIFY_SOURCE=2 -L/usr/local/openssl/lib64 -L/usr/local/openssl/lib -lssl -lcrypto -fPIE -pie -o  stunnel stunnel-tls.o stunnel-str.o stunnel-file.o stunnel-client.o stunnel-log.o stunnel-options.o stunnel-protocol.o stunnel-network.o stunnel-resolver.o stunnel-ssl.o stunnel-ctx.o stunnel-verify.o stunnel-sthreads.o stunnel-fd.o stunnel-dhparam.o stunnel-cron.o stunnel-stunnel.o stunnel-pty.o stunnel-libwrap.o stunnel-ui_unix.o -lz 
libtool: link: gcc -g -O2 -D_THREAD_SAFE -pthread -Wall -Wextra -Wpedantic -Wformat=2 -Wconversion - Wno-long-long -Wno-deprecated-declarations -fstack-protector -fPIE -D_FORTIFY_SOURCE=2 -fPIE -pie -o stunnel stunnel-tls.o stunnel-str.o stunnel-file.o stunnel-client.o stunnel-log.o stunnel-options.o  stunnel-protocol.o stunnel-network.o stunnel-resolver.o stunnel-ssl.o stunnel-ctx.o stunnel-verify.o stunnel-sthreads.o stunnel-fd.o stunnel-dhparam.o stunnel-cron.o stunnel-stunnel.o stunnel-pty.o stunnel-libwrap.o stunnel-ui_unix.o -L/usr/local/openssl/lib64 -L/usr/local/openssl/lib -lssl -lcrypto  -lz -pthread 
clang: warning: argument unused during compilation: '-pthread' 
clang: warning: argument unused during compilation: '-pie' 
clang: warning: argument unused during compilation: '-pthread' 
ld: warning: directory not found for option '-L/usr/local/openssl/lib64' 
ld: warning: directory not found for option '-L/usr/local/openssl/lib' 
Undefined symbols for architecture x86_64: 
"_CRYPTO_THREADID_set_callback", referenced from: 
    _sthreads_init in stunnel-sthreads.o 
"_CRYPTO_THREADID_set_numeric", referenced from: 
    _threadid_func in stunnel-sthreads.o 
"_ERR_remove_thread_state", referenced from: 
    _client_run in stunnel-client.o 
"_SSL_CTX_set_psk_client_callback", referenced from: 
    _context_init in stunnel-ctx.o 
"_SSL_CTX_set_psk_server_callback", referenced from: 
    _context_init in stunnel-ctx.o 
"_TLSv1_1_client_method", referenced from: 
    _parse_service_option in stunnel-options.o 
"_TLSv1_1_server_method", referenced from: 
    _parse_service_option in stunnel-options.o 
"_TLSv1_2_client_method", referenced from: 
    _parse_service_option in stunnel-options.o 
"_TLSv1_2_server_method", referenced from: 
    _parse_service_option in stunnel-options.o 
"_X509_STORE_get1_certs", referenced from: 
    _verify_callback in stunnel-verify.o 
"_X509_check_email", referenced from: 
    _verify_callback in stunnel-verify.o 
"_X509_check_host", referenced from: 
    _verify_callback in stunnel-verify.o 
"_X509_check_ip_asc", referenced from: 
    _verify_callback in stunnel-verify.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make[2]: *** [stunnel] Error 1 
make[1]: *** [all] Error 2 
make: *** [all-recursive] Error 1 
+0

'brew install stunnel', и все готово ([Homebrew] (http://brew.sh)). Linker говорит, что он не может найти символы для архитектуры x86_64. Также, если вы внимательно прочитали свой журнал ('ld: warning: каталог не найден для опции '-L/usr/local/openssl/lib64''), он также говорит, что он не может найти каталог openssl (для 32 и 64 бит). Установите openssl и попытайтесь его снова создать. Или просто установите Homebrew и 'brew install stunnel'. – robertvojta

ответ

2

Эта проблема возникла после установки, поскольку она зависит от OpenSSL, и она не была в состоянии f ind библиотек, связанных с OpenSSL.

Возможны две возможные причины для этой проблемы: 1. OpenSSL не установлен в системе. В этом случае перед установкой stunnel необходимо установить OpenSSL.

  1. OpenSSL не установлен в стандартный путь.
2

Вам нужно передать аргументы, чтобы связать с PTHREAD и пирог не -pthread но -lpthread и не -pie но -lpie

Также нет ЛИЭС в /usr/local/openssl/ попробовать установить их с помощью пива или macports или просто загрузить двоичные файлы.

Намеки есть, прямо перед Вами:

лязг: предупреждение: аргумент не используется во время компиляции: '-pthread'

...

л.д. предупреждение: Каталог не найден для опции '-L/usr/local/openssl/lib64'