gcc를 사용하여 macOS에서 OpenSSL 라이브러리를 연결하는 방법은 무엇입니까?

gcc를 사용하여 macOS에서 OpenSSL 라이브러리를 연결하는 방법은 무엇입니까?

Homebrew 패키지 관리자를 통해 OpenSSL을 설치했습니다. 필요한 라이브러리와 헤더 파일을 찾았습니다.

제목은 다음과 같습니다

/usr/local/Cellar/openssl/1.0.2h_1/include/openssl
/usr/local/Cellar/openssl/1.0.2j/include/openssl
/usr/local/Cellar/openssl/1.0.2k/include/openssl

라이브러리 파일은 다음과 같습니다:

/usr/lib/libssl.0.9.7.dylib
/usr/lib/libssl.0.9.8.dylib
/usr/lib/libssl.dylib

gccOpenSSL 라이브러리에 연결을 시도하기 위해 다음을 포함하여 여러 명령을 시도했습니다 .

gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -lssl
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl.dylib
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl.0.9.8
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl.0.9.8.dylib

이들 모두는 "파일을 찾을 수 없음" 오류 또는 링커 오류를 생성합니다.

이를 수행하는 올바른 방법은 무엇입니까?

답변1

홈브류 라이브러리가 아닌 운영 체제와 함께 설치된 openssl 라이브러리에 연결하려는 것 같습니다. homebrew가 1.0.2k 라이브러리를 설치한 위치를 찾아보세요.

find /usr/local/Cellar/ -name "libssl.*"

/usr/local/Cellar/_path_of some_sort/libssl.a와 같은 것을 찾아야 합니다. /usr/lib에 있는 라이브러리 대신 이 라이브러리에 연결해 보십시오. /usr/lib 라이브러리는 오래되어 사용 중인 헤더 파일과 호환되지 않습니다.

gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -L/usr/local/Cellar/path_of_some_sort/ -lssl -lcrypto -o md5

관련 정보