After adding the link options: -lssl and -lcrypto, my program was correctly compiled. However, I found GCC doesn't include the two options, so where do the options come from?
The GCC documentation tells us that -l is the option to link with a library.
-l
-llibrary -l library Search the library named library when linking. (The second alternative with the library as a separate argument is only for POSIX compliance and is not recommended.)
So you're telling gcc to link with the libraries "ssl" and "crypto". These libraries are typically installed in /usr/lib. On Linux they'll be called libssl.so and libcrypto.so. On OS X they'll be called libssl.dylib and libcrypto.dylib.
/usr/lib
libssl.so
libcrypto.so
libssl.dylib
libcrypto.dylib
2.1m questions
2.1m answers
60 comments
57.0k users