Hi BSalita,
Straightforward fix: Put pgm.cpp before all the link flags.
Explanation: When you use g++ in the "compile and link" mode, it changes all the .cpp files into .o files and then passes all the link flags and the .o files to the linker in the order they appear. This means you get a link command like "ld -lcasablanca -lcommon_utilities -lboost pgm.o". The linker then discards all the shared libraries because it doesn't see any reason to use them, then tries to link your .o file and fails to find symbols. This is fixed by announcing you need the symbols first (by putting the .o file requiring symbols first), then linking the libraries afterwards.
Another few minor things: You don't need to link against common_utilities; that's just for our tests. You probably should link against ssl though.
Good Luck!
Straightforward fix: Put pgm.cpp before all the link flags.
Explanation: When you use g++ in the "compile and link" mode, it changes all the .cpp files into .o files and then passes all the link flags and the .o files to the linker in the order they appear. This means you get a link command like "ld -lcasablanca -lcommon_utilities -lboost pgm.o". The linker then discards all the shared libraries because it doesn't see any reason to use them, then tries to link your .o file and fails to find symbols. This is fixed by announcing you need the symbols first (by putting the .o file requiring symbols first), then linking the libraries afterwards.
Another few minor things: You don't need to link against common_utilities; that's just for our tests. You probably should link against ssl though.
Good Luck!