User forums > Using Code::Blocks

using "dlopen and dlsym" export a class using C::B

(1/1)

johnny:
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.

MortenMacFly:

--- Quote from: johnny on December 18, 2009, 11:18:30 am ---Only i add the libClassA.a to "Link settings", thie project could be complied successfully,but i could not call this library dynamically.

--- End quote ---
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.

Navigation

[0] Message Index

Go to full version