+3  A: 

You also need libcrypto.

Change your link line to:

g++ -ggdb -g -O2 -lssl -lcrypt ... as before ...
R Samuel Klatchko
+1  A: 

At least on of the missing symbols is not part of libssl but part of libcrypto:

diciu:~ diciu$ nm /usr/lib/libcrypto.dylib | grep PEM_read_bio_RSAPublicKey
00031d20 T _PEM_read_bio_RSAPublicKey

Add "-lcrypto" to your compile line.

diciu
A: 

I found that libcrypto was already installed in /opt/local/lib and the above solutions did not work. I changed -lcrypt flag to -lcrypto flag and it compiled without errors:

g++ -ggdb -g -O2 -L/opt/local/lib -L/usr/lib -lssl -lcrypto -lboost_system-mt

Hengjie