mac 의 Nginx 컴 파일 구덩이
10038 단어 스 트림 미디어
오늘 은 mac 로 nginx 소스 코드 를 컴 파일 합 니 다. nginx - rtmp - module 을 컴 파일 해 야 하기 때문에 홈 페이지 에서 주 는 방식 으로 컴 파일 합 니 다. 그 결과 중간 에 어려움 을 겪 었 습 니 다 nginx 컴 파일 실행 명령 은 다음 과 같 습 니 다.
./configure --add-module=/Users/kyolong/Desktop/workspace/nginx/nginx-rtmp-module --with-openssl=../openssl-1.0.2s
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
먼저 이 오류 입 니 다. 얼핏 보면 라 이브 러 리 가 인식 되 지 않 는 문제 인 것 같 습 니 다. 아래 에 기호 가 정의 되 지 않 은 i386 을 알려 드 리 겠 습 니 다. 사실은 이 오 류 는 여기에 없습니다. 위 에 i386 은 이미 Xcode 에서 제거 되 었 습 니 다.what???? 쉽게 말 하면 애플 이 32 명의 라 이브 러 리 를 사용 하지 말 라 는 거 야. 그래, 그럼 예전 에 예전 버 전 으로 건 드 리 라 고 했 잖 아 ~
ld: warning: The i386 architecture is deprecated for macOS (remove from the Xcode build setting: ARCHS)
ld: warning: could not create compact unwind for _passwd_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _s_client_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _serverinfo_cli_parse_cb: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _speed_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _print_stuff: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _s_time_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _rand_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _ocsp_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _create_query: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _serial_cb: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _srp_main: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _srp_create_user: stack subl instruction is too different from dwarf stack size
ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd, missing required architecture i386 in file /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd
ld: warning: could not create compact unwind for _ERR_print_errors_cb: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _ERR_print_errors: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _PEM_X509_INFO_write_bio: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _PEM_read_bio_PrivateKey: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _PKCS7_verify: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _PKCS7_decrypt: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _RAND_load_file: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _RAND_write_file: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _read_string_inner: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _process_pci_value: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _pkey_GOST01cp_encrypt: stack subl instruction is too different from dwarf stack size
ld: warning: could not create compact unwind for _pkey_GOST01cp_decrypt: stack subl instruction is too different from dwarf stack size
Undefined symbols for architecture i386:
"__DefaultRuneLocale", referenced from:
_show_ciphers in enc.o
_s_server_main in s_server.o
_s_client_main in s_client.o
_BN_hex2bn in libcrypto.a(bn_print.o)
_CONF_parse_list in libcrypto.a(conf_mod.o)
_OBJ_create_objects in libcrypto.a(obj_dat.o)
_OCSP_REQ_CTX_nbio in libcrypto.a(ocsp_ht.o)
...
좋 습 니 다. 예전 에 이런 실 수 를 당 한 사람 이 있 는 지 찾 아 보 니 많은 선배 들 이 이미 구 덩이 를 밟 았 습 니 다. 이 문 제 는 Xcode 강등 을 통 해 해결 할 수 있 습 니 다. 그러나 Xcode 강등 은 아무래도 좀 번 거 롭 습 니 다. 그리고 옛날 버 전 을 다운로드 하고 반나절 동안 옛날 버 전 을 삭제 해 야 합 니 다.괜찮아 요. 선배 님 이 다 밟 아 주 셨 어 요. 이 걸 Command 라 고 다운로드 해 주세요.Line_Tools_macOS_10.13_for_Xcode_10.1 이면 됩 니 다. 사용 방법 도 매우 간단 합 니 다. 다음 과 같이 xcode - select 가 현재 어디 를 가리 키 고 있 는 지 살 펴 보 겠 습 니 다.
$ xcode-select -p
/Application/Xcode.app/Contents/Developer
그리고 그것 을 수정 하고 우리 가 방금 내 린 CommondLine Tools 를 가리 키 며 루트 권한 이 필요 하기 때문에 sudo 를 사용 합 니 다.
$ sudo xcode-select -s /path/to/CommandLineTools
Undefined symbols for architecture x86_64
위의 그 잘못 이 해결 되 고 또 새로운 잘못 이 생 겼 다.그리고 아래 의 이 오류 입 니 다. x86 - 64 라 이브 러 리 를 찾 을 수 없 는 것 같 습 니 다. 이 파일 을 무시 하 는 것 은 64 비트 라 이브 러 리 가 아 닙 니 다.근 데 아까 nginx 32 명 더 있 었 는데 왜 지금 64 명 더...그래서 아래 에 많은 보고 가 잘못 되 었 는데, 분명히 라 이브 러 리 파일 의 자릿수 가 틀 렸 다.
ld: warning: ignoring file ../openssl-1.0.2s/.openssl/lib/libssl.a, file was built for archive which is not the architecture being linked (x86_64): ../openssl-1.0.2s/.openssl/lib/libssl.a
ld: warning: ignoring file ../openssl-1.0.2s/.openssl/lib/libcrypto.a, file was built for archive which is not the architecture being linked (x86_64): ../openssl-1.0.2s/.openssl/lib/libcrypto.a
Undefined symbols for architecture x86_64:
"_AES_cbc_encrypt", referenced from:
_ngx_rtmp_mpegts_write_file in ngx_rtmp_mpegts.o
_ngx_rtmp_mpegts_close_file in ngx_rtmp_mpegts.o
"_AES_set_encrypt_key", referenced from:
_ngx_rtmp_mpegts_init_encryption in ngx_rtmp_mpegts.o
"_ASN1_GENERALIZEDTIME_print", referenced from:
_ngx_ssl_stapling_ocsp_handler in ngx_event_openssl_stapling.o
"_ASN1_TIME_print", referenced from:
_ngx_ssl_get_client_v_start in ngx_event_openssl.o
_ngx_ssl_get_client_v_end in ngx_event_openssl.o
_ngx_ssl_get_client_v_remain in ngx_event_openssl.o
"_ASN1_d2i_bio", referenced from:
_ngx_ssl_stapling in ngx_event_openssl_stapling.o
저도 어떻게 해 야 할 지 모 르 겠 어 요. 선배 님 이 또 구 덩이 를 밟 으 셨 어 요. 그러면 저 는 해결 방안 을 밟 지 않 아 도 돼 요. 번역 하기 전에 다음 과 같은 말 을 더 하 는 거 예요.
$ export KERNEL_BITS=64
openssl 의 config 파일 은 이 변수 에 따라 x86 을 열 었 는 지 여 부 를 판단 합 니 다.64 컴 파일, 기본 값 은 닫 힌 다음 에 정상적으로 컴 파일 하여 파일 을 성공 적 으로 생 성 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
학습 노트 (개인 기록)이 시간 이 지나 면 서버 에서 이 연결 을 닫 습 니 다 (2) clientheader_timeout: 이 매개 변 수 는 클 라 이언 트 요청 헤더 데 이 터 를 읽 는 시간 초과 시간 을 설정 하 는 데 사 용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.