dlopen() on dolaris


 
Thread Tools Search this Thread
Operating Systems Solaris dlopen() on dolaris
# 1  
Old 05-11-2009
dlopen() on dolaris

Dear experts,
please help

#include <stdio.h>
#include <dlfcn.h>
#include <link.h>
#include <iostream.h>
#include<stdlib.h>
#include<errno.h>

Code:
void main() 
{
         printf("\n in the main\n");
	void *handle;
        handle = dlopen("my.so", RTLD_LAZY);
	
        if( handle == NULL )
       {
          printf("errno[%d], errmsg[%s]\n", errno, dlerror());
          exit(1);
        }
     else
     {
          printf("\n loaded successfully");
     }
}

when i execute this file i am getting

errno[0], errmsg[ld.so.1: ./sotest: fatal: relocation error: file /user/vpp/Sun64/sys/libodl.so: symbol __1cDstdDcin_: referenced symbol not found]

even though that so is working fine in some other application i am just trying to check with other SOs which were having some problem but my working so is also showing some problem like what is the reason, please inform how to solve this problem
# 2  
Old 05-11-2009
It is complaining about not finding a stub - resolution to external reference inside the library. Normally when you create homegrown libraries you put all your entry points and their code into the one library, so dl does not have to guess what/where a symbol is.

This is the same idea as linking because what your are doing is linking at runtime.

Plus. You also appear to be running a C module against C++ definitions/libraries. This is not easy to do: C++ often mangles symbol names - example: prepends "__ " to the symbol name above.
# 3  
Old 05-11-2009
One last point - never use void main() - it is int main()
UNIX expects you to return a numeric value - unsigned int 0-255 from a C program.
When main is void _start() (the code that runs main) returns whatever junk it finds on the stack. This may seem trivial, but it is actually important.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

dlopen Linux vs. OSX

I've got a C++ program and some plugins ( shared objects ) that I have been developing for Linux. I was originally using and OSX machine to develop and test most of the code. I use dlopen to open the shared objects and then call methods from them. It behaves differently on Linux ( don't know the... (3 Replies)
Discussion started by: rfkrakora
3 Replies

2. AIX

Coredump in _Init when used dlopen() on AIX 6.1

Hello, One of our Customer is getting Coredump when our application is trying to load a library(one of our products library) using dlopen() on AIX 6.1. Our application and our shared library are built on AIX 5.3 machine using xlC compiler. we have tried executing the same application on... (2 Replies)
Discussion started by: erra_krishna
2 Replies

3. Programming

Linux: dlopen fails to find symbols

I've attached a tar.gz containing three tests to demonstrate the problem I'm having. Within the tar are two shared libraries, two test applications, and a Makefile that builds the three tests. The shared libaries are libshlib1.so and libshlib2.so. Both export a function, libFunc, which takes... (5 Replies)
Discussion started by: DreamWarrior
5 Replies

4. Programming

Dynamic library load with dlopen

Hi, I created two library libsum.so and libproduct.so. In the libproduct.so is defined function "product" that use function "sum" defined in libsum.so. So libproduct depends on libsum. In main function I called product function by a dlopen request. Unfortunaly, when I execute program I have an... (5 Replies)
Discussion started by: shade82
5 Replies

5. Programming

dlopen help

//foo.c #include<stdio.h> int pen(int a) { printf("%d",a); } $cc -c foo.c $ls -shared -o libfoo.so foo.o ///////////now libfoo.so formed //i have already designed libfoo.so //main.c #include<stdio.h> #include <dlfcn.h> int main() { (2 Replies)
Discussion started by: lookforlohith
2 Replies

6. Programming

resolve_symbols: loader error: dlopen:

when i try to run an executable i got the following error message: resolve_symbols: loader error: dlopen: what does this error mean and what should be done to avoid this? with regards (1 Reply)
Discussion started by: gfhgfnhhn
1 Replies

7. Programming

compile error while using dlopen

Hi unix lovers, I am getting error while compile a function which uses dlopen. My code is I am getting error as follows Am I missing something? I think I am missing a lot :-) I am using solaris. Thanks in advance, -Ashish (5 Replies)
Discussion started by: shriashishpatil
5 Replies

8. Programming

default location of libs in dlopen

Hi Where is the default location of libs to search, when we specify any lib in dlopen function. And if we want to specify a custom location, how will we do it? thanks. (1 Reply)
Discussion started by: sumsin
1 Replies

9. Programming

dlopen failed!

I can open my so file successfully by calling dlopen directly in my main function. But if I fork a child process, and call dlopen in child process, it failed! I don't know why. Following is my code: #include <stdio.h> #include <errno.h> #include <dlfcn.h> void childFunc(void) { void... (1 Reply)
Discussion started by: virmin
1 Replies

10. Solaris

dlopen issue with a dll

HI All, I am trying to use a dll using dlopen but in vain. When I try to ldd that dll it returns no output. Can anybody please tell me how I can load this dll in my process space. PS: ldd -l returns a lot of unsatisfied dependent symbols. Thanks a lot in advance Codeman (0 Replies)
Discussion started by: codeman
0 Replies
Login or Register to Ask a Question