News:

As usual while waiting for the next release - don't forget to check the nightly builds in the forum.

Main Menu

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

Started by johnny, December 18, 2009, 11:18:30 AM

Previous topic - Next topic

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.
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.
Compiler logging: Settings->Compiler & Debugger->tab "Other"->Compiler logging="Full command line"
C::B Manual: [url="https://www.codeblocks.org/docs/main_codeblocks_en.html"]https://www.codeblocks.org/docs/main_codeblocks_en.html[/url]
C::B FAQ: [url="https://wiki.codeblocks.org/index.php?title=FAQ"]https://wiki.codeblocks.org/index.php?title=FAQ[/url]