![gcc 빌드 오류: -lssl을 찾을 수 없음](https://linux55.com/image/127363/gcc%20%EB%B9%8C%EB%93%9C%20%EC%98%A4%EB%A5%98%3A%20-lssl%EC%9D%84%20%EC%B0%BE%EC%9D%84%20%EC%88%98%20%EC%97%86%EC%9D%8C.png)
안녕하세요 여러분,
저는 다음과 같은 프로그램을 만들려고 합니다.메모리 클라우드CentOS Linux release 7.4.1708
이 프로젝트 에 특히 필요한GCC 4.9내 Centos로는GCC 4.8그래서 나는 다음을 수행해야 합니다:
- 내 시스템에서 gcc4.8을 완전히 제거했습니다.
sudo yum remove --skip-broken gcc
- SCL 설치
sudo yum install centos-release-scl
- 설치하다
개발 도구 세트-3
포함하다GCC 4.9
sudo yum install devtoolset-3
- 개발 도구 세트 활성화
scl enable devtoolset-3 bash
이는 이전에 발생한 일부 오류를 해결하는 데 도움이 되었지만 이제 sudo make -j12
프로젝트를 빌드하기 위해 실행하려고 하면 다음과 관련된 오류가 발생합니다.개발 도구 세트
오류는 다음과 같습니다.
/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/ld: 찾을 수 없음 -lssl /opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/ld: -lcrypto를 찾을 수 없습니다 Collect2: 오류: ld가 종료 상태 1개를 반환했습니다.
make: [obj.master/apps/client] 오류 1
make: 끝나지 않은 작업을 기다리는 중...
확실하지는 않지만 연결 문제인 것 같습니다. 이전에 이 문제를 겪은 사람이 있습니까?
답변1
두 오류 모두 OpenSSL 개발 라이브러리가 설치되지 않은 것과 관련이 있습니다(-lssl은 매우 위험한 일입니다).
"링크"를 의미하는 와 gcc가 링크해야 하는 필수 라이브러리인 로 -lssl
나눌 수 있습니다 . 일반적으로 링크할 파일에는 이름이 지정되며 헤더가 필요합니다. 파일과 헤더는 dev(Debian 기반) 또는 devel(RPM 기반) 패키지에 있습니다. 여기서는 ssl -> openssl인데 개발 패키지가 필요하므로 openssl-dev 또는 openssl-devel입니다.-l
ssl
lib<whatever_comes_after_the_-l>.a
이제 를 검색할 수 있습니다 lib<whatever_comes_after_the_-l>.a
. Debian 기반 배포판의 경우 를 설치했습니다 apt-file
.
데비안에서는:
apt-file update
apt-file search libssl.a
CentOS에서:
rpm -q -f libssl.a
Debian/Ubuntu에서 설치하려면 다음을 수행하세요.
sudo apt-get install libssl-dev
CentOS에서 설치하려면 다음을 수행하십시오.
sudo yum install openssl-devel