On Aug 8, 3:26 pm, Premkumar <[EMAIL PROTECTED]> wrote:
> a.cpp
> ----------------------------------
> #include <iostream>
> using namespace std;
>
> void mymain() {
>         cout<<"my-main"<<endl;}
>
> ----------------------------------
>
> I'm trying to start my program at mymain than the standard main ..
> So I compiled a.cpp to a.o &
>
> I executed :
> g++ -Wl,-emymain  a.o
>
> That did not work as the linker said it could not find the symbol. So
> I used name mangler (nm) to demangle a.o
> g++ -Wl,-emymain__Fv  a.o
>
> Now the linker says:
> /usr/lib/crt1.o(.text+0x18): In function `_start':
> : undefined reference to `main'
> collect2: ld returned 1 exit status
>
> I also tried the following
> g++ -Wl,--verbose -Wl,-emymain__Fv -Wl,--defsym -Wl,start=mymain__Fv
> a.o
> g++ -Wl,--verbose -Wl,-emymain__Fv -Wl,--defsym -Wl,_start=mymain__Fv
> a.o
>
> Still no use..
>
> What mistake am I making here ?


Asking in the wrong group?  Changing the "entry" point is a g++
question.  I'd recommend asking in gnu.g++.help.

BEGIN OFF TOPIC
The entry point for a g++ program is not "main", but some other symbol
(probably "start"), which sets up the runtime environment and then
calls main.  So changing the entry point in the linker does nothing.
END OFF TOPIC

Per the standard "main" is the entry point once global variables and
the runtim library have been initialized.

If you really want mymain(), do the following:


void mymain()
{
}


int main()
{
   mymain();
}

Please note that main *must* return int (with an implicit 0 return).

_______________________________________________
help-gplusplus mailing list
help-gplusplus@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gplusplus

Reply via email to