I have a huge project that works under Windows (VS 2008). I'm trying to port it to linux but i've encountered a problem in dynamic libraries.
I have a RendererOpenGL project that creates RendererOpenGL.so. But i cannot open that file using the code below:
#include <dlfcn.h>
#include <cstdio>
int main()
{
void* libHandle;
libHandle=dlopen("./RendererOpenGL.so", RTLD_LAZY);
if(!libHandle)
{
printf("PROBLEM OPENING SO FILE!\n");
return 0;
}
printf("Bye...\n");
return 0;
}
I tried adding -shared to compiler flags or linker options, but nothing changed. And dlopen('RendererOpenGL.so", RTLD_LAZY) doesnt work either. I guess there is something wrong in the configuration.
this question is not related to C::B, so I think you'd find a better forum to ask there.
It is. Creating a shared object works fine if i use g++ with -shared flag. But when I create a Dynamic Library with C::B, it doesn't create a valid output.
Quote from: revanthedarth on January 28, 2011, 02:25:09 PM
It is. Creating a shared object works fine if i use g++ with -shared flag. But when I create a Dynamic Library with C::B, it doesn't create a valid output.
Believe me it works if the settings are correct.
Try the dynamic library wizard and compare the settings with your project.
Please read the FAQs and the posting rules
http://wiki.codeblocks.org/index.php?title=FAQ#Q:_How_do_I_troubleshoot_an_compiler_problem.3F
http://wiki.codeblocks.org/index.php?title=FAQ
http://forums.next.codeblocks.org/index.php/topic,8962.0.html
http://forums.next.codeblocks.org/index.php/topic,9996.0.html
Tim S.