更改入口点“main”

如何更改程序的“主要”入口点?

#include int main(int argc, char *argv[]) { printf("%s\n","Hello world!"); return 0; } 

 gcc -o entry_test -Wl,-eother entry_test.c 

 #include int other(void){//can't use argc, argv printf("Bye-Bye world!\n"); return 0; } int main(int argc, char *argv[]){ printf("%s\n","Hello world!"); return 0; } 

如果你正在使用gcc,我发现一个线程说你可以使用-e命令行参数指定一个不同的入口点; 如BLUEPIXY所述,另见:

避免C程序中的主(入口点)

– 有关“-e”选项的更多详细信息,请参阅以下链接:

http://gcc.gnu.org/ml/gcc/2001-06/msg01959.html

另一种方法是在链接器“启动”文件中更改启动函数。链接器可能包含一些文件中的一些预主启动代码,如start.o,这段代码运行以设置C环境然后调用main(如在所有嵌入式工具链中)。 没有什么可以阻止你用调用另一个函数的东西替换它。

这是启动文件的一个很好的解释:

嵌入式系统中的引导加载程序和启动代码是什么?

我投了这个问题,因为它对一些嵌入式c开发人员来说真的很有用。