如何更改我的程序的入口點「主」?更改入口點「主」
#include<stdio.h>
int main(int argc, char *argv[])
{
printf("%s\n","Hello world!");
return 0;
}
如何更改我的程序的入口點「主」?更改入口點「主」
#include<stdio.h>
int main(int argc, char *argv[])
{
printf("%s\n","Hello world!");
return 0;
}
gcc -o entry_test -Wl,-eother entry_test.c
#include<stdio.h>
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;
}
從來沒有聽說過。這實際上工作嗎?我會嘗試! – clearlight 2015-04-05 21:33:22
我只是試圖用gcc在Mac OS X Yosemite上編譯並得到這個錯誤:'gcc -Wl,-other xc ld:unknown option:-other clang:error:linker command failed退出代碼1(使用 - v看到調用)' – clearlight 2015-04-05 21:34:32
接下來,我將嘗試在Linux和Solaris上 – clearlight 2015-04-05 21:35:40
如果你正在使用gcc,我發現一個線程,說你可以使用-e命令行參數來指定一個不同的切入點;作爲BLUEPIXY陳述 還看到:
Avoiding the main (entry point) in a C program
- 見下面的鏈接瞭解「-e」選項的詳細信息:
http://gcc.gnu.org/ml/gcc/2001-06/msg01959.html
另一種方式是改變起動功能是在鏈接器「啓動」文件..鏈接器可能包括一些像start.o這樣的文件中的一些主要啓動代碼,並且它是運行以設置C環境然後調用main的代碼片段(如在所有嵌入式工具 - 鏈)。沒有什麼可以阻止你用一些調用另一個函數的東西代替它。
這裏是啓動文件一個很好的解釋:
What is the bootloader and startup code in embedded systems?
我投了這個問題了,因爲它確實可能是一些嵌入式C語言開發人員非常有用。
你是指什麼改變?你想改變什麼?如果你想要另一個入口點,你不能。無論你的程序是什麼,總會有一個'主要功能' – Simon 2015-04-05 21:28:01
[避免主程序(入口點)在C程序中](http://stackoverflow.com/questions/3379190/avoiding-the- main-entry-in-ac-program) – 2015-04-05 21:28:48
只是爲了解編譯器如何生成輸出文件。當然,我的程序使用默認的鏈接器文件。我可以改變它嗎? – 2015-04-05 21:33:31