![readelf가 올바른 버전의 기호를 표시하지만 컴파일된 바이너리를 실행할 때 정의되지 않은 기호](https://linux55.com/image/175450/readelf%EA%B0%80%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EB%B2%84%EC%A0%84%EC%9D%98%20%EA%B8%B0%ED%98%B8%EB%A5%BC%20%ED%91%9C%EC%8B%9C%ED%95%98%EC%A7%80%EB%A7%8C%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%90%9C%20%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EB%95%8C%20%EC%A0%95%EC%9D%98%EB%90%98%EC%A7%80%20%EC%95%8A%EC%9D%80%20%EA%B8%B0%ED%98%B8.png)
여기 지침에 따라 vagrant-libvirt 플러그인을 컴파일했습니다. https://github.com/hashicorp/vagrant/issues/7039#issuecomment-488499883
컴파일은 잘 되지만 실행하면 다음과 같은 오류가 발생합니다.
3: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
2: from /home/manu/.vagrant.d/gems/2.6.6/gems/ruby-libvirt-0.7.1/lib/libvirt.rb:11:in `<top (required)>'
1: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': /usr/lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b - /home/manu/.vagrant.d/gems/2.6.6/gems/ruby-libvirt-0.7.1/lib/_libvirt.so (LoadError)
그러나 확인하면 /usr/lib64/libk5crypto.so.3
다음 기호를 내보냅니다.
$ readelf -Ws /usr/lib64/libk5crypto.so.3 | grep EVP_KDF_ctrl
5: 0000000000000000 0 FUNC GLOBAL DEFAULT UND EVP_KDF_ctrl@OPENSSL_1_1_1b (5)
반면에 내 시스템(RHEL 8)에는 openssl 1.1.1c가 설치되어 있습니다.
rpm -qa | grep openssl
openssl-1.1.1c-15.el8.x86_64
openssl-pkcs11-0.4.10-2.el8.x86_64
openssl-libs-1.1.1c-15.el8.x86_64
xmlsec1-openssl-1.2.25-4.el8.x86_64
openssl-devel-1.1.1c-15.el8.x86_64
여기서 어떤 문제를 해결해야 합니까? 잘못된 라이브러리를 설치했나요? 잘못된 ld 플래그를 설정하고 경로를 포함했습니까?