C++ では、main を関数ポインタで定義することは可能ですか? 例えば:
int f(int, char**) {
return 0;
}
int (*main)(int, char**) = &f;
このコードは正しくコンパイルおよびリンクされますが、実行時にセグメンテーション エラーが発生します。関数ポインタの値をコードとして実行しようとしているからだと思います。
さらに、プレーンな C++ では不可能な場合は、gcc の非標準機能によって実現できます (おそらく、エクスポートされたシンボルの型を何らかの方法で変更します)。
最後に、gcc ディレクティブで実現できない場合、カスタム リンカー スクリプトで実現できますか?