I wouldn't build an .so that has a main defined.
That's like saying that you wouldn't write two classes that exported the same named method.
There is nothing magical about the name:main, and there is absolutely no conflict between having a main in a dynamically linked library and the "main" (if it has one), in the executable that dynamically links to that library.
Indeed, it is easy to demonstrate that any executable (with or without a main of its own), can perfectly safely dynamically link to 2, 3 or 200 .so/.dlls that each export their own routine called "main" (or anything else). Once you have (runtime) loaded the library, you query the address of the "main" routine by name and assign the results to a variable (function pointer). You can easily have an array of function pointers, each initialised with the address of a routine named "main" in each of as many .sos as you care to load, and call them all with no confict whatsoever.
You wouldn't be able to statically link them to the executable, but why would you try?
but the examples do segfault on every *nix box I run...
That I really do not understand, and would appreciate your help in understanding it. (Can anyone else conform this under linux?)
What happens if you rename the "main" routine in the final example to say: "mainx"?
In reply to Re^7: Plz suggest what is the problem in the following code?
by BrowserUk
in thread Plz suggest what is the problem in the following code?
by sanjay nayak
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |