Code::Blocks Forums

User forums => Using Code::Blocks => Topic started by: johnny on December 18, 2009, 11:18:30 am

Title: using "dlopen and dlsym" export a class using C::B
Post by: johnny on December 18, 2009, 11:18:30 am
hello...

Environiment:

OS:redhat linux
C::B version:8.02

Description:

while i using C::B to test the following case, we should link the static library, if so, the member of the class could be called successfully,
otherwise, "Undefined reference to "ClassA::Sum",pls help us to solve it.tks.

class ClassA
{

public:
     ClassA(){};
    ~ClassA(){};
    int Sum(int a, int b);
};
extern "C" ClassA* Create(){return new ClassA};


ClassA* tempA = (ClassA*)dlsym(dl_handle,"Create");
tempA->Sum(1,2);


Error Message:
Undefined reference to "ClassA::Sum"

Only i add the libClassA.a to "Link settings", thie project could be complied successfully,but i could not call this library dynamically.

Title: Re: using "dlopen and dlsym" export a class using C::B
Post by: MortenMacFly on December 18, 2009, 11:35:41 am
Only i add the libClassA.a to "Link settings", thie project could be complied successfully,but i could not call this library dynamically.
This is not related to Code::Blocks and thus violates our forum rules. This is *not* a general programming board. Try a C/C++ related forum.

Topic locked.