gcc 빌드 오류: -lssl을 찾을 수 없음

gcc 빌드 오류: -lssl을 찾을 수 없음


안녕하세요 여러분,
저는 다음과 같은 프로그램을 만들려고 합니다.메모리 클라우드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입니다.-lssllib<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

관련 정보