On 18 July 2017 at 13:56, sothy shan wrote: > Yes. I already included definition into the libfluid_msg and compiled > as seen below. > ///// > PacketOutCommon(const PacketOutCommon &other); That's not a definition, that's a declaration. Where did you define it? If you only wrote this declaration then the error is completely expected. You told the compiler you were defining a copy constructor, but then you failed to do it. That means you lied to the compiler.