Added C++ type support
Added shared and static modifier
Added command line options