int do_things(void); int application_main(void) { return do_things(); } int test_main(void) { return 42; } int main(void) { return test_main(); } 元の問題は、application_mainとtest_mainを(おそらくはプリプロセッサで)切り替えたいのですが、ライブラリに関数do_thingsが実装されていないためリンクが失敗します。 /tmp/demo-d19626.o: 関数 `application_main' 内: demo.c:(.text+0x5): `do_things' に対する定義されていない参照です clang-6.0: error: linker command failed with exit code 1 (use