FunctionPass failing with undefined symbol

I am trying sample Hello.cpp FunctionPass but while executing observing following error:
Error opening ‘./libHello.so’: ./libHello.so: undefined symbol: _ZNK4llvm12FunctionPass17createPrinterPassERNS_11raw_ostreamERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE

Steps:

  1. clang++ -fPIC -shared -o libHello.so -o libHello.so Hello.o

  2. clang++ -emit-llvm test.cpp -c -o test.bc

  3. opt -load ./libHello.so -hello -disable-output test.bc

Please let me know if I missed any intermediate step.

Thanks,