본문 바로가기
개발 공부/etc

[오류 해결] ld: symbol(s) not found for architecture x86_64 에러

by 개발인생 2022. 1. 25.
반응형

프로젝트 진행 중 Fastity-Kafka 설치 중 에러가 발생했습니다.

오류 커맨드

npm i fastify-kafka --save

오류 내용

Undefined symbols for architecture x86_64:
  "_BIO_ctrl", referenced from:
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_f_base64", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_free_all", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_new", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_new_mem_buf", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
  "_BIO_push", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_read", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
  "_BIO_s_mem", referenced from:
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_set_flags", referenced from:
      _rd_kafka_sasl_scram_fsm in rdkafka_sasl_scram.o
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_BIO_write", referenced from:
      _rd_base64_encode in rdkafka_sasl_scram.o
  "_CRYPTO_cleanup_all_ex_data", referenced from:
      _rd_kafka_transport_ssl_term in rdkafka_transport.o
  "_CRYPTO_num_locks", referenced from:
      _rd_kafka_transport_ssl_init in rdkafka_transport.o
  "_CRYPTO_set_id_callback", referenced from:
      _rd_kafka_transport_ssl_term in rdkafka_transport.o
      _rd_kafka_transport_ssl_init in rdkafka_transport.o
  "_CRYPTO_set_locking_callback", referenced from:
      _rd_kafka_transport_ssl_term in rdkafka_transport.o
      _rd_kafka_transport_ssl_init in rdkafka_transport.o
  "_ERR_error_string_n", referenced from:
      _rd_kafka_ssl_error in rdkafka_transport.o
  "_ERR_get_error_line_data", referenced from:
      _rd_kafka_ssl_error in rdkafka_transport.o
  "_ERR_remove_thread_state", referenced from:
      _rd_kafka_broker_thread_main in rdkafka_broker.o
  "_EVP_sha1", referenced from:
      _rd_kafka_sasl_scram_conf_validate in rdkafka_sasl_scram.o
  "_EVP_sha256", referenced from:
      _rd_kafka_sasl_scram_conf_validate in rdkafka_sasl_scram.o
  "_EVP_sha512", referenced from:
      _rd_kafka_sasl_scram_conf_validate in rdkafka_sasl_scram.o
  "_HMAC", referenced from:
      _rd_kafka_sasl_scram_Hi in rdkafka_sasl_scram.o
      _rd_kafka_sasl_scram_HMAC in rdkafka_sasl_scram.o
  "_OPENSSL_add_all_algorithms_noconf", referenced from:
      _rd_kafka_transport_ssl_init in rdkafka_transport.o
  "_SHA1", referenced from:
      _rd_kafka_sasl_scram_conf_validate in rdkafka_sasl_scram.o
  "_SHA256", referenced from:
      _rd_kafka_sasl_scram_conf_validate in rdkafka_sasl_scram.o
  "_SHA512", referenced from:
      _rd_kafka_sasl_scram_conf_validate in rdkafka_sasl_scram.o
  "_X509_STORE_set_flags", referenced from:
      _rd_kafka_transport_ssl_ctx_init in rdkafka_transport.o
  "_X509_free", referenced from:
      _rd_kafka_transport_io_serve in rdkafka_transport.o
  "_X509_verify_cert_error_string", referenced from:
      _rd_kafka_transport_io_serve in rdkafka_transport.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]: *** [librdkafka.1.dylib] Error 1
make[1]: *** [libs] Error 2
make: *** [_Users_akabani_Documents_source_git_node_rdkafka_demo_node_modules_node_rdkafka_deps_librdkafka_gyp_librdkafka_target_build_dependencies.intermediate] Error 2
rm _Users_akabani_Documents_source_git_node_rdkafka_demo_node_modules_node_rdkafka_deps_librdkafka_gyp_librdkafka_target_build_dependencies.intermediate
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at ChildProcess.emit (events.js:127:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:209:12)
gyp ERR! System Darwin 17.4.0
gyp ERR! command "/Users/akabani/.nvm/versions/node/v9.7.1/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/akabani/Documents/source/git/node-rdkafka-demo/node_modules/node-rdkafka
gyp ERR! node -v v9.7.1
gyp ERR! node-gyp -v v3.5.0
gyp ERR! not ok 

인터넷에 찾아보니 여러가지 해결법이 나왔고, 하나하나 시도를 했습니다.

첫번째 시도 - 미해결

첫번째로 MAC M1환경에서 Xcode를 재설치하는 방법입니다.

sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
npm install node-rdkafka

두번째 시도 - 미해결

설치하려고 하는 Fastity-Kafka 라이브러리는 node-rdkafka 를 감싸고 있습니다.

node-rdkafka 의 홈페이지에 있는 설정대로 시도를 해보습니다.

export CPPFLAGS=-I/usr/local/opt/openssl/include
export LDFLAGS=-L/usr/local/opt/openssl/lib

// 터미널에 위의 명령어를 입력 후 다시 설치 시도

세번째 시도 - 해결

Node 버전을 업그레이드 해보라는 글이 있어서 해당 Node버전 업그레이드 후 설치를 시도했습니다.

그래서 Node버전을 14 에서 16 으로 업그레이드 했습니다.

brew install nvm

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh

nvm --version

nvm install --lts — 최신 lts 버전으로 설치

이 방법 후에 Fastity-Kafka 를 설치할 수 있었습니다.

저랑 같은 오류를 겪으신다면 위의 3가지 방법 모두 한번 해보시길 바랍니다!

반응형

'개발 공부 > etc' 카테고리의 다른 글

[월간회고] 2022년 08월 회고  (0) 2022.09.02
[독서후기] 함께자라기  (0) 2022.09.02
클린코드 - 후기  (0) 2021.12.21
클린코드 17장 - 냄새와 휴리스틱  (0) 2021.12.20
클린코드 14장 - 점진적인 개선  (0) 2021.12.14

댓글