3 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
這是一個(gè)鏈接器設(shè)置:
-Wl,-eentry
的-Wl,...事情參數(shù)傳遞給鏈接器和鏈接器將一個(gè)-e參數(shù)設(shè)置項(xiàng)功能

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您使用的是提供GNU Binutils的系統(tǒng)(例如Linux),則可以使用該objcopy命令使任意函數(shù)成為新的入口點(diǎn)。
假設(shè)一個(gè)名為的文件program.c包含entry函數(shù):
$ cat > program.c
#include <stdio.h>
int entry()
{
return 0;
}
^D
首先使用-c生成可重定位目標(biāo)文件的方式對其進(jìn)行編譯:
$ gcc -c program.c -o program.o
然后,您將重新定義entry為main:
$ objcopy --redefine-sym entry=main program.o
現(xiàn)在使用gcc編譯新的目標(biāo)文件:
$ gcc program.o -o program
注意:如果您的程序已經(jīng)具有名為的功能main,則在步驟2之前,您可以執(zhí)行單獨(dú)的objcopy調(diào)用:
objcopy --redefine-sym oldmain=main program.o
- 3 回答
- 0 關(guān)注
- 925 瀏覽
添加回答
舉報(bào)