編譯多個含有 main function 的 C code
理論上是不行,GCC 無法自行繞過某某函式去編譯,通常是給條件去讓編譯器來達到 "只有一個你想要的 main function" 編譯目的。有人會問為什麼會有多個 main function,我想多半是因為想 Debug。
1. 利用 #ifdef
- other.c
#ifdef DEBUG
int main ()
{
return 0;
}
#endif
gcc -DEBUG other.c -o other.x
2. 利用 __attribute__((weak))
- other.h ( __attribute__((weak)) 只能在宣告 function 時作 )
int main() __attribute__((weak));
int main ()
{
return 0;
}
參考資料 :
https://stackoverflow.com/questions/35510670/compile-c-code-without-its-main-function
0 意見:
張貼留言